FROM php:7.4-fpm AS base WORKDIR /var/www/html # Debian 11 (bullseye) is EOL; deb.debian.org returns 404 for security debs. RUN printf '%s\n' \ 'deb http://archive.debian.org/debian bullseye main' \ 'deb http://archive.debian.org/debian-security bullseye-security main' \ 'deb http://archive.debian.org/debian bullseye-updates main' \ > /etc/apt/sources.list \ && printf 'Acquire::Check-Valid-Until "false";\n' \ > /etc/apt/apt.conf.d/99no-check-valid-until \ && apt-get update \ && apt-get install -y --no-install-recommends \ git \ pkg-config \ unzip \ libonig-dev \ libzip-dev \ libpng-dev \ libjpeg62-turbo-dev \ libfreetype6-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j"$(nproc)" \ pdo_mysql \ mbstring \ bcmath \ zip \ exif \ gd \ && rm -rf /var/lib/apt/lists/* COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini COPY docker/php/zz-clear-env.conf /usr/local/etc/php-fpm.d/zz-clear-env.conf COPY docker/php/entrypoint.sh /usr/local/bin/app-entrypoint.sh COPY docker/php/certs/*.crt /usr/local/share/ca-certificates/ RUN update-ca-certificates \ && chmod +x /usr/local/bin/app-entrypoint.sh \ && usermod -u 1000 www-data && groupmod -g 1000 www-data ENTRYPOINT ["app-entrypoint.sh"] CMD ["php-fpm"] FROM base AS staging COPY --chown=www-data:www-data . /var/www/html RUN composer install --no-interaction --prefer-dist --no-dev --optimize-autoloader \ && mkdir -p \ storage/logs \ storage/framework/cache/data \ storage/framework/views \ storage/framework/sessions \ storage/app/public \ bootstrap/cache \ && chown -R www-data:www-data storage bootstrap/cache vendor FROM base AS development