ARG PHP_VERSION=8.5 FROM php:${PHP_VERSION}-cli-alpine AS prod ARG UID=1000 ARG GID=1000 ENV UID=${UID} ENV GID=${GID} WORKDIR /var/www RUN apk add --no-cache \ acl \ fcgi \ file \ gettext \ git \ ; RUN set -eux; \ apk update; \ apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ linux-headers \ icu-data-full \ icu-dev \ libzip-dev \ zlib-dev \ ; \ \ docker-php-ext-configure zip; \ docker-php-ext-install -j$(nproc) \ intl \ zip \ sockets \ ; \ pecl install \ apcu \ excimer \ ; \ pecl clear-cache; \ docker-php-ext-enable \ apcu \ excimer \ ; \ \ 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 .app-phpexts-rundeps $runDeps; \ \ apk del .build-deps CMD ["php", "bin/console", "app:get-nhl-schedule"] ENV PATH="${PATH}:/root/.composer/vendor/bin" COPY --from=composer:2.9.2 /usr/bin/composer /usr/bin/composer COPY composer.* symfony.* ./ RUN set -eux; \ if [ -f composer.json ]; then \ composer install --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress; \ composer clear-cache; \ fi COPY src /var/www/src COPY bin /var/www/bin COPY config /var/www/config COPY public /var/www/public COPY .env.example /var/www/.env RUN addgroup -g ${GID} www RUN adduser -u ${UID} -s /bin/sh -D -G www www RUN chown -R www:www /var/www USER www RUN set -eux; \ mkdir -p var/cache var/log; \ if [ -f composer.json ]; then \ composer dump-autoload --classmap-authoritative --no-dev; \ composer dump-env prod; \ composer run-script --no-dev post-install-cmd; \ chmod +x bin/console; sync; \ fi FROM prod AS dev USER root RUN apk --no-cache add linux-headers pcre-dev ${PHPIZE_DEPS} RUN pecl install xdebug-3.5.0 RUN docker-php-ext-enable xdebug RUN apk del linux-headers pcre-dev ${PHPIZE_DEPS} USER www # COPY .php-cs-fixer.php /var/www/.php-cs-fixer.php # COPY phpstan.neon /var/www/phpstan.neon RUN composer install