symfony-docker icon indicating copy to clipboard operation
symfony-docker copied to clipboard

Building php and caddy run some steps from php's building twice

Open 0x346e3730 opened this issue 4 years ago • 1 comments
trafficstars

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.

0x346e3730 avatar Nov 14 '21 10:11 0x346e3730

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

abderahmaneBasil avatar Dec 07 '21 12:12 abderahmaneBasil

This should've been resolved since https://github.com/dunglas/symfony-docker/blob/90d3f391dbf4a98833275a4c6a07d448f1616bba/Dockerfile#L94-L95 introduced in #275

meetmatt avatar Oct 17 '22 06:10 meetmatt