From 3a256bbcbaa70b68fdf856f3c87f25db487dd66b Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 18:05:07 +0200 Subject: [PATCH 01/16] Update Dockerfile to PHP 8.1 - Use "mlocati/php-extension-installer" for simpler extension installs - Utilise "COPY --link" for better layer caching and faster build --- .docker/Dockerfile | 93 +++++++++------------- .docker/php/conf.d/armaforces-web.prod.ini | 2 + .env | 1 + 3 files changed, 40 insertions(+), 56 deletions(-) create mode 100644 .docker/php/conf.d/armaforces-web.prod.ini diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 13eb5732..387872fd 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -1,7 +1,7 @@ # the different stages of this Dockerfile are meant to be built into separate images # https://docs.docker.com/compose/compose-file/#target -ARG PHP_VERSION=8.0 +ARG PHP_VERSION=8.1 ARG NGINX_VERSION=1.17 # Build assets in disposable node image @@ -9,18 +9,27 @@ FROM node:11-alpine as armaforces_web_assets WORKDIR /tmp/app_build -COPY package.json package-lock.json webpack.config.js ./ +COPY --link package.json package-lock.json webpack.config.js ./ RUN npm install WORKDIR /tmp/app_build/assets/ -COPY assets ./ +COPY --link assets ./ RUN npm run build:ci # Build PHP application image FROM php:${PHP_VERSION}-fpm-alpine AS armaforces_web_php +# build for production +ENV APP_ENV=prod + +WORKDIR /www/app + +# php extensions installer: https://github.com/mlocati/docker-php-extension-installer +COPY --from=mlocati/php-extension-installer --link /usr/bin/install-php-extensions /usr/local/bin/ + +# persistent / runtime deps RUN apk add --no-cache \ acl \ fcgi \ @@ -29,62 +38,32 @@ RUN apk add --no-cache \ git \ ; -ARG APCU_VERSION=5.1.18 RUN set -eux; \ - apk add --no-cache --virtual .build-deps \ - $PHPIZE_DEPS \ - icu-dev \ - libzip-dev \ - zlib-dev \ - ; \ - \ - docker-php-ext-configure zip; \ - docker-php-ext-install -j$(nproc) \ - intl \ - zip \ - pdo_mysql \ - ; \ - pecl install \ - apcu-${APCU_VERSION} \ - ; \ - pecl clear-cache; \ - docker-php-ext-enable \ - apcu \ - opcache \ - ; \ - \ - runDeps="$( \ - scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \ - | tr ',' '\n' \ - | sort -u \ - | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ - )"; \ - apk add --no-cache --virtual .api-phpexts-rundeps $runDeps; \ - \ - apk del .build-deps \ -; - -COPY --from=composer/composer:2-bin /composer /usr/bin/composer -RUN ln -s $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini -COPY .docker/php/conf.d/armaforces-web.ini $PHP_INI_DIR/conf.d/armaforces-web.ini + install-php-extensions \ + intl \ + zip \ + apcu \ + opcache \ + ; + +RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" +COPY --link .docker/php/conf.d/armaforces-web.ini $PHP_INI_DIR/conf.d/ +COPY --link .docker/php/conf.d/armaforces-web.prod.ini $PHP_INI_DIR/conf.d/ # https://getcomposer.org/doc/03-cli.md#composer-allow-superuser ENV COMPOSER_ALLOW_SUPERUSER=1 ENV PATH="${PATH}:/root/.composer/vendor/bin" -WORKDIR /www/app - -# build for production -ARG APP_ENV=prod +COPY --from=composer/composer:2-bin --link /composer /usr/bin/composer # prevent the reinstallation of vendors at every changes in the source code COPY composer.json composer.lock symfony.lock .env ./ RUN set -eux; \ - composer install --prefer-dist --no-dev --no-scripts --no-progress --no-suggest; \ + composer install --prefer-dist --no-dev --no-scripts --no-progress; \ composer clear-cache # copy only specifically what we need -COPY bin bin/ +COPY --link bin bin/ COPY config config/ COPY migrations migrations/ COPY public public/ @@ -97,12 +76,11 @@ RUN set -eux; \ composer dump-autoload --classmap-authoritative --no-dev; \ composer run-script --no-dev post-install-cmd; \ chmod +x bin/console; sync -VOLUME /www/app/var # copy assets manifests COPY --from=armaforces_web_assets /tmp/app_build/public/build/ public/build/ -COPY .docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint +COPY --link .docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint RUN chmod +x /usr/local/bin/docker-entrypoint # .env is copied again as COPY needs to copy at least one file @@ -129,20 +107,23 @@ CMD ["nginx", "-g", "daemon off;"] FROM armaforces_web_php AS armaforces_web_php_dev -ARG XDEBUG_VERSION=3.1.1 +ENV APP_ENV=dev +VOLUME /www/app/var/ + +RUN rm $PHP_INI_DIR/conf.d/app.prod.ini; \ + mv "$PHP_INI_DIR/php.ini" "$PHP_INI_DIR/php.ini-production"; \ + mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" + RUN set -eux; \ - apk add --no-cache --virtual .build-deps $PHPIZE_DEPS; \ - pecl install xdebug-$XDEBUG_VERSION; \ - docker-php-ext-enable xdebug; \ - apk del .build-deps + install-php-extensions xdebug RUN apk add --no-cache \ nodejs \ npm ENV XDEBUG_INI_PATH=$PHP_INI_DIR/conf.d/docker-php-ext-xdebug.ini -COPY .docker/php/conf.d/docker-php-ext-xdebug.ini $XDEBUG_INI_PATH +COPY --link .docker/php/conf.d/docker-php-ext-xdebug.ini $XDEBUG_INI_PATH -COPY .docker/php/scripts/xon.sh /usr/bin/xon -COPY .docker/php/scripts/xoff.sh /usr/bin/xoff +COPY --link .docker/php/scripts/xon.sh /usr/bin/xon +COPY --link .docker/php/scripts/xoff.sh /usr/bin/xoff RUN chmod +x /usr/bin/xon /usr/bin/xoff diff --git a/.docker/php/conf.d/armaforces-web.prod.ini b/.docker/php/conf.d/armaforces-web.prod.ini new file mode 100644 index 00000000..993d481e --- /dev/null +++ b/.docker/php/conf.d/armaforces-web.prod.ini @@ -0,0 +1,2 @@ +opcache.preload_user = www-data +opcache.preload = /srv/app/config/preload.php diff --git a/.env b/.env index dfeabbe0..ccf4ef36 100644 --- a/.env +++ b/.env @@ -9,6 +9,7 @@ # Real environment variables win over .env files. # # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. +# https://symfony.com/doc/current/configuration/secrets.html # # Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). # https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration From dcbcf56e7e446e5a9481b7b8029a4cf5fc03fb44 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 18:06:11 +0200 Subject: [PATCH 02/16] Update default php config --- .docker/php/conf.d/armaforces-web.ini | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.docker/php/conf.d/armaforces-web.ini b/.docker/php/conf.d/armaforces-web.ini index e06bc3be..90e554f0 100644 --- a/.docker/php/conf.d/armaforces-web.ini +++ b/.docker/php/conf.d/armaforces-web.ini @@ -1,13 +1,14 @@ -# Borrowed from https://github.com/api-platform/api-platform/blob/master/api/docker/php/conf.d/api-platform.ini - -apc.enable_cli = 1 +# Borrowed from https://github.com/api-platform/api-platform/blob/6ddd494ccec4dc5d0329c1ded75101e58b8747e4/api/docker/php/conf.d/app.ini +expose_php = 0 date.timezone = Europe/Warsaw -session.auto_start = Off -short_open_tag = Off +apc.enable_cli = 1 +session.use_strict_mode = 1 +zend.detect_unicode = 0 -# http://symfony.com/doc/current/performance.html +; https://symfony.com/doc/current/performance.html +realpath_cache_size = 4096K +realpath_cache_ttl = 600 opcache.interned_strings_buffer = 16 opcache.max_accelerated_files = 20000 opcache.memory_consumption = 256 -realpath_cache_size = 4096K -realpath_cache_ttl = 600 +opcache.enable_file_override = 1 From ed04aa34c27a64e6cb48d843479ad568efb47ffa Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 18:19:46 +0200 Subject: [PATCH 03/16] Add optional way of removing vendor/ from bind mount for Windows/Mac --- docker-compose.override.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 2079091c..6ea16b98 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -7,9 +7,9 @@ services: target: armaforces_web_php_dev volumes: - './:/www/app:rw' - - './var/import:/www/app/var/import:ro' - - './var/cache:/www/app/var/cache:rw' - - './var/log:/www/app/var/log:rw' + # If you develop on Mac or Windows you can remove the vendor/ directory + # from the bind-mount for better performance by enabling the next line: + #- /srv/app/vendor environment: PHP_IDE_CONFIG: serverName=armaforces-web extra_hosts: From 15b5173ad1cb84b3a4cc64312cb60e3ef31f1409 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 18:20:56 +0200 Subject: [PATCH 04/16] Disable preload.php --- .docker/php/conf.d/armaforces-web.prod.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.docker/php/conf.d/armaforces-web.prod.ini b/.docker/php/conf.d/armaforces-web.prod.ini index 993d481e..3fd1c007 100644 --- a/.docker/php/conf.d/armaforces-web.prod.ini +++ b/.docker/php/conf.d/armaforces-web.prod.ini @@ -1,2 +1,2 @@ -opcache.preload_user = www-data -opcache.preload = /srv/app/config/preload.php +;opcache.preload_user = www-data +;opcache.preload = /srv/app/config/preload.php From f82628e6a7757defc44a375ef1afbe19be49d844 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 19:05:09 +0200 Subject: [PATCH 05/16] Re-enable preload.php on prod --- .docker/php/conf.d/armaforces-web.prod.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.docker/php/conf.d/armaforces-web.prod.ini b/.docker/php/conf.d/armaforces-web.prod.ini index 3fd1c007..d9a6c5f8 100644 --- a/.docker/php/conf.d/armaforces-web.prod.ini +++ b/.docker/php/conf.d/armaforces-web.prod.ini @@ -1,2 +1,2 @@ -;opcache.preload_user = www-data -;opcache.preload = /srv/app/config/preload.php +opcache.preload_user = www-data +opcache.preload = /www/app/config/preload.php From 7a42eaccb20f71bd019f6c0505c8c17610306cc2 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 19:05:20 +0200 Subject: [PATCH 06/16] Remove tabs from dockerfile --- .docker/Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 387872fd..8988cb0c 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -40,10 +40,10 @@ RUN apk add --no-cache \ RUN set -eux; \ install-php-extensions \ - intl \ - zip \ - apcu \ - opcache \ + intl \ + zip \ + apcu \ + opcache \ ; RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" From d0defa681900043a40673a0b84256606d62c78ff Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 19:13:48 +0200 Subject: [PATCH 07/16] Add pdo_mysql --- .docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.docker/Dockerfile b/.docker/Dockerfile index 8988cb0c..ee2485d2 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -44,6 +44,7 @@ RUN set -eux; \ zip \ apcu \ opcache \ + pdo_mysql \ ; RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" @@ -108,7 +109,7 @@ CMD ["nginx", "-g", "daemon off;"] FROM armaforces_web_php AS armaforces_web_php_dev ENV APP_ENV=dev -VOLUME /www/app/var/ +#VOLUME /www/app/var/ RUN rm $PHP_INI_DIR/conf.d/app.prod.ini; \ mv "$PHP_INI_DIR/php.ini" "$PHP_INI_DIR/php.ini-production"; \ From aa551fca0aeca40c7e7ef3051d89872345ebfb68 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 19:24:27 +0200 Subject: [PATCH 08/16] Update entrypoint, disable preload --- .docker/php/conf.d/armaforces-web.prod.ini | 4 ++-- .docker/php/docker-entrypoint.sh | 11 ++++------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.docker/php/conf.d/armaforces-web.prod.ini b/.docker/php/conf.d/armaforces-web.prod.ini index d9a6c5f8..a941b3bd 100644 --- a/.docker/php/conf.d/armaforces-web.prod.ini +++ b/.docker/php/conf.d/armaforces-web.prod.ini @@ -1,2 +1,2 @@ -opcache.preload_user = www-data -opcache.preload = /www/app/config/preload.php +;opcache.preload_user = www-data +;opcache.preload = /www/app/config/preload.php diff --git a/.docker/php/docker-entrypoint.sh b/.docker/php/docker-entrypoint.sh index 8efb0283..3f1a7593 100644 --- a/.docker/php/docker-entrypoint.sh +++ b/.docker/php/docker-entrypoint.sh @@ -9,15 +9,12 @@ if [ "${1#-}" != "$1" ]; then fi if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then - PHP_INI_RECOMMENDED="$PHP_INI_DIR/php.ini-production" + setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var + setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var + if [ "$APP_ENV" != 'prod' ]; then - PHP_INI_RECOMMENDED="$PHP_INI_DIR/php.ini-development" + composer install --prefer-dist --no-progress --no-interaction || true fi - ln -sf "$PHP_INI_RECOMMENDED" "$PHP_INI_DIR/php.ini" - - mkdir -p var/cache var/log - setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var || true - setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var || true if [ "$APP_ENV" = 'prod' ]; then php bin/console doctrine:migrations:migrate --allow-no-migration --no-interaction From 2487fa1cd3ab69bd882453f7706afaa37b1185dc Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 19:26:42 +0200 Subject: [PATCH 09/16] Allow setfacl to fail Windows... restore as it was previously. --- .docker/php/docker-entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.docker/php/docker-entrypoint.sh b/.docker/php/docker-entrypoint.sh index 3f1a7593..b956889c 100644 --- a/.docker/php/docker-entrypoint.sh +++ b/.docker/php/docker-entrypoint.sh @@ -9,8 +9,8 @@ if [ "${1#-}" != "$1" ]; then fi if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then - setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var - setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var + setfacl -R -m u:www-data:rwX -m u:"$(whoami)":rwX var || true + setfacl -dR -m u:www-data:rwX -m u:"$(whoami)":rwX var || true if [ "$APP_ENV" != 'prod' ]; then composer install --prefer-dist --no-progress --no-interaction || true From 573fc6dbe84b6a1ae81a56847540ea603744b504 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 19:27:54 +0200 Subject: [PATCH 10/16] Update info about bind mounts on Windows/Mac --- docker-compose.override.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 6ea16b98..7fd3d17d 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -7,9 +7,10 @@ services: target: armaforces_web_php_dev volumes: - './:/www/app:rw' - # If you develop on Mac or Windows you can remove the vendor/ directory - # from the bind-mount for better performance by enabling the next line: - #- /srv/app/vendor + # If you develop on Mac or Windows you can remove the vendor/ and var/ directory + # from the bind-mount for better performance by enabling the next lines: + #- /www/app/vendor + #- /www/app/var environment: PHP_IDE_CONFIG: serverName=armaforces-web extra_hosts: From 1178c5ac62f856423160597dad51f33dcdeb236d Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 20:21:31 +0200 Subject: [PATCH 11/16] Output PHP container logs on CI failure --- .github/workflows/application.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/application.yml b/.github/workflows/application.yml index 8e7156d5..1b852f74 100644 --- a/.github/workflows/application.yml +++ b/.github/workflows/application.yml @@ -42,6 +42,11 @@ jobs: run: | make test-ci + - name: Failure logs + if: failure() + run: | + docker compose logs php + docker_release: name: Docker release runs-on: ubuntu-latest From 98dd7774804bf707ac3b6cdf4bee30342829cc9e Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 20:36:08 +0200 Subject: [PATCH 12/16] Fix tests failure --- docker-compose.test.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 68a5a54e..c23cf8ba 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -11,9 +11,6 @@ services: - docker.pkg.github.com/armaforces/website/app_assets:dev - docker.pkg.github.com/armaforces/website/app_php:dev volumes: - # Extract files from runtime for QA tools - - './var:/www/app/var' - - './vendor:/www/app/vendor' # Copy tests into runtime - './.env.test:/www/app/.env.test:ro' - './tests:/www/app/tests:ro' From 0090d4204704e236aa045be77b2d395b4eae6222 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 20:51:38 +0200 Subject: [PATCH 13/16] Wait for database in docker-entrypoint --- .docker/php/docker-entrypoint.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.docker/php/docker-entrypoint.sh b/.docker/php/docker-entrypoint.sh index b956889c..61987f56 100644 --- a/.docker/php/docker-entrypoint.sh +++ b/.docker/php/docker-entrypoint.sh @@ -19,6 +19,34 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then if [ "$APP_ENV" = 'prod' ]; then php bin/console doctrine:migrations:migrate --allow-no-migration --no-interaction fi + + if grep -q DATABASE_URL= .env; then + echo "Waiting for database to be ready..." + ATTEMPTS_LEFT_TO_REACH_DATABASE=60 + until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || DATABASE_ERROR=$(php bin/console dbal:run-sql -q "SELECT 1" 2>&1); do + if [ $? -eq 255 ]; then + # If the Doctrine command exits with 255, an unrecoverable error occurred + ATTEMPTS_LEFT_TO_REACH_DATABASE=0 + break + fi + sleep 1 + ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE - 1)) + echo "Still waiting for database to be ready... Or maybe the database is not reachable. $ATTEMPTS_LEFT_TO_REACH_DATABASE attempts left." + done + + if [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ]; then + echo "The database is not up or not reachable:" + echo "$DATABASE_ERROR" + exit 1 + else + echo "The database is now ready and reachable" + fi + + if [ "$( find ./migrations -iname '*.php' -print -quit )" ]; then + php bin/console doctrine:migrations:migrate --no-interaction + fi + fi + fi exec docker-php-entrypoint "$@" From fe6c19c6c1fa92ae8ce73982274d20e6a60d11c8 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 21:00:33 +0200 Subject: [PATCH 14/16] Wait for database before attempting DB migration --- .docker/php/docker-entrypoint.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.docker/php/docker-entrypoint.sh b/.docker/php/docker-entrypoint.sh index 61987f56..91287269 100644 --- a/.docker/php/docker-entrypoint.sh +++ b/.docker/php/docker-entrypoint.sh @@ -16,10 +16,6 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then composer install --prefer-dist --no-progress --no-interaction || true fi - if [ "$APP_ENV" = 'prod' ]; then - php bin/console doctrine:migrations:migrate --allow-no-migration --no-interaction - fi - if grep -q DATABASE_URL= .env; then echo "Waiting for database to be ready..." ATTEMPTS_LEFT_TO_REACH_DATABASE=60 @@ -47,6 +43,10 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then fi fi + if [ "$APP_ENV" = 'prod' ]; then + php bin/console doctrine:migrations:migrate --allow-no-migration --no-interaction + fi + fi exec docker-php-entrypoint "$@" From b6f00c2f97fe7ad1002bdb384799d78f2882c6d6 Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 21:22:54 +0200 Subject: [PATCH 15/16] Update database wait --- .docker/php/docker-entrypoint.sh | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.docker/php/docker-entrypoint.sh b/.docker/php/docker-entrypoint.sh index 91287269..0efda4ad 100644 --- a/.docker/php/docker-entrypoint.sh +++ b/.docker/php/docker-entrypoint.sh @@ -18,13 +18,8 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then if grep -q DATABASE_URL= .env; then echo "Waiting for database to be ready..." - ATTEMPTS_LEFT_TO_REACH_DATABASE=60 + ATTEMPTS_LEFT_TO_REACH_DATABASE=30 until [ $ATTEMPTS_LEFT_TO_REACH_DATABASE -eq 0 ] || DATABASE_ERROR=$(php bin/console dbal:run-sql -q "SELECT 1" 2>&1); do - if [ $? -eq 255 ]; then - # If the Doctrine command exits with 255, an unrecoverable error occurred - ATTEMPTS_LEFT_TO_REACH_DATABASE=0 - break - fi sleep 1 ATTEMPTS_LEFT_TO_REACH_DATABASE=$((ATTEMPTS_LEFT_TO_REACH_DATABASE - 1)) echo "Still waiting for database to be ready... Or maybe the database is not reachable. $ATTEMPTS_LEFT_TO_REACH_DATABASE attempts left." @@ -37,10 +32,6 @@ if [ "$1" = 'php-fpm' ] || [ "$1" = 'php' ] || [ "$1" = 'bin/console' ]; then else echo "The database is now ready and reachable" fi - - if [ "$( find ./migrations -iname '*.php' -print -quit )" ]; then - php bin/console doctrine:migrations:migrate --no-interaction - fi fi if [ "$APP_ENV" = 'prod' ]; then From 34ac0fd4f1114fde7ac7bead41406d298ef1949d Mon Sep 17 00:00:00 2001 From: Filip Maciejewski Date: Mon, 14 Aug 2023 21:33:46 +0200 Subject: [PATCH 16/16] Set APP_ENV of test stack --- docker-compose.test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.test.yml b/docker-compose.test.yml index c23cf8ba..98b61a34 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -10,6 +10,8 @@ services: cache_from: - docker.pkg.github.com/armaforces/website/app_assets:dev - docker.pkg.github.com/armaforces/website/app_php:dev + environment: + APP_ENV: test volumes: # Copy tests into runtime - './.env.test:/www/app/.env.test:ro'