# syntax=docker/dockerfile:1 FROM composer:2 AS vendor WORKDIR /app COPY composer.json composer.lock symfony.lock ./ RUN composer install --no-dev --no-scripts --prefer-dist --no-interaction --ignore-platform-reqs COPY . . RUN composer dump-autoload --classmap-authoritative --no-dev \ && composer run-script --no-dev post-install-cmd || true FROM php:8.4-fpm-alpine AS runtime WORKDIR /app RUN apk add --no-cache \ tzdata postgresql-dev postgresql-client libpq libzip-dev \ libjpeg-turbo-dev freetype-dev libwebp-dev libpng-dev icu-dev \ oniguruma-dev bash autoconf g++ make \ && docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \ && docker-php-ext-install -j$(nproc) \ zip pdo pdo_pgsql pdo_mysql gd intl opcache \ && pecl install redis \ && docker-php-ext-enable redis \ && rm -rf /tmp/pear /var/cache/apk/* ENV TZ=Europe/Moscow RUN cp /usr/share/zoneinfo/$TZ /etc/localtime && echo "$TZ" > /etc/timezone COPY docker/fpm-pool.conf /usr/local/etc/php-fpm.d/zz-docker.conf COPY --from=vendor /app /app RUN mkdir -p var/cache var/log public/uploads \ && chown -R www-data:www-data var public/uploads \ && chmod -R 775 var ENV APP_ENV=prod APP_DEBUG=0 RUN APP_SECRET=build-placeholder \ DATABASE_URL="postgresql://build:build@127.0.0.1:5432/build" \ DATABASE_CABINET_URL="postgresql://build:build@127.0.0.1:5432/build" \ DATABASE_BITRIX_URL="mysql://build:build@127.0.0.1:3306/build" \ REDIS_URL="redis://127.0.0.1:6379" \ php bin/console cache:warmup --env=prod || true USER www-data EXPOSE 9000 CMD ["php-fpm", "-F"]