symfony-docker
symfony-docker copied to clipboard
Building php and caddy run some steps from php's building twice
Building caddy
Sending build context to Docker daemon 54.11MB
Step 1/40 : ARG PHP_VERSION=8.0
Step 2/40 : ARG CADDY_VERSION=2
Step 3/40 : FROM php:${PHP_VERSION}-fpm-alpine AS symfony_php
---> 52c511f481c5
Step 4/40 : RUN apk add --no-cache acl fcgi file gettext git gnu-libiconv ;
---> Using cache
---> 7d23913bedd3
Step 5/40 : ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
---> Using cache
---> 763957a97ff8
Step 6/40 : ARG APCU_VERSION=5.1.20
---> Using cache
---> ec8b80a6f634
Step 7/40 : RUN set -eux; apk add --no-cache --virtual .build-deps $PHPIZE_DEPS icu-dev libzip-dev zlib-dev libxslt-dev libpng-dev ; docker-php-ext-configure zip; docker-php-ext-install -j$(nproc) intl zip xsl gd ; 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 .phpexts-rundeps $runDeps; apk add --no-cache nodejs yarn; apk del .build-deps
---> Using cache
---> 58517c623315
Step 8/40 : COPY docker/php/docker-healthcheck.sh /usr/local/bin/docker-healthcheck
---> Using cache
---> 4817f3496c2f
Step 9/40 : RUN chmod +x /usr/local/bin/docker-healthcheck
---> Using cache
---> 16c673e5a17e
Step 10/40 : RUN ln -s $PHP_INI_DIR/php.ini-production $PHP_INI_DIR/php.ini
---> Using cache
---> f73d59c028d5
Step 11/40 : COPY docker/php/conf.d/symfony.prod.ini $PHP_INI_DIR/conf.d/symfony.ini
---> Using cache
---> 3b4b1f4072b2
Step 12/40 : COPY docker/php/php-fpm.d/zz-docker.conf /usr/local/etc/php-fpm.d/zz-docker.conf
---> Using cache
---> 35989ffbc24c
Step 13/40 : COPY docker/php/docker-entrypoint.sh /usr/local/bin/docker-entrypoint
---> Using cache
---> 9be782f9177f
Step 14/40 : RUN chmod +x /usr/local/bin/docker-entrypoint
---> Using cache
---> d59cbd30e41a
Step 15/40 : VOLUME /var/run/php
---> Using cache
---> 92631405da51
Step 16/40 : COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
---> Using cache
---> b8c67a233070
Step 17/40 : ENV COMPOSER_ALLOW_SUPERUSER=1
---> Using cache
---> a5e1b9a1edbf
Step 18/40 : ENV PATH="${PATH}:/root/.composer/vendor/bin"
---> Using cache
---> f8cb0003ce0c
Step 19/40 : WORKDIR /srv/app
---> Using cache
---> b7442b5a3bde
Step 20/40 : ARG SKELETON="symfony/website-skeleton"
---> Using cache
---> dbf4750f0d82
Step 21/40 : ENV SKELETON ${SKELETON}
---> Using cache
---> 0153a2e0aea0
Step 22/40 : ARG STABILITY="stable"
---> Using cache
---> e7edd2bd31c4
Step 23/40 : ENV STABILITY ${STABILITY}
---> Using cache
---> 38a86482f5bd
Step 24/40 : ARG SYMFONY_VERSION=""
---> Using cache
---> 30db8124e6fa
Step 25/40 : ENV SYMFONY_VERSION ${SYMFONY_VERSION}
---> Using cache
---> 6cea17830959
Step 26/40 : RUN composer create-project "${SKELETON} ${SYMFONY_VERSION}" . --stability=$STABILITY --prefer-dist --no-dev --no-progress --no-interaction; composer clear-cache
---> Using cache
---> 0f149f1911ba
Step 27/40 : RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev; docker-php-ext-install -j$(nproc) pdo_pgsql; apk add --no-cache --virtual .pgsql-rundeps so:libpq.so.5; apk del .pgsql-deps
---> Using cache
---> 804ede42e240
Step 28/40 : COPY . .
---> ec9b361861cc
Step 29/40 : RUN set -eux; mkdir -p var/cache var/log; composer install --prefer-dist --no-dev --no-progress --no-scripts --no-interaction; composer dump-autoload --classmap-authoritative --no-dev; composer symfony:dump-env prod; yarn install; yarn build; composer run-script --no-dev post-install-cmd; chmod +x bin/console; sync
---> Running in 4c315c9e7a9c
Everything is fine until COPY . . which is normal because it can't be cached, so every instruction after this is re-ran, resulting in composer install being ran twice for example.
I don't know how this can be fixed as composer install can't be run before copying the files, but we don't need to run it again for caddy.
Second build of symfony_php doesn't take account of SYMFONY_VERSION env variable when running SYMFONY_VERSION=4.4.* docker-compose build --no-cache --pull
This should've been resolved since https://github.com/dunglas/symfony-docker/blob/90d3f391dbf4a98833275a4c6a07d448f1616bba/Dockerfile#L94-L95 introduced in #275