Hand-managed apk build deps + docker-php-ext-install was failing to build on the server. Switch to the extension-installer image (same approach the escapepage stack uses), which resolves system libs itself. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
40 lines
1.2 KiB
Docker
40 lines
1.2 KiB
Docker
FROM php:8.5-fpm-alpine
|
|
|
|
RUN apk add --no-cache bash git unzip
|
|
|
|
# Install PHP extensions with mlocati/php-extension-installer: it pulls the
|
|
# right system libraries itself, builds, and cleans up - much less fragile
|
|
# than hand-maintaining apk build deps.
|
|
COPY --from=mlocati/php-extension-installer:latest /usr/bin/install-php-extensions /usr/local/bin/
|
|
RUN install-php-extensions \
|
|
intl \
|
|
pdo_mysql \
|
|
opcache \
|
|
zip
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
COPY composer.json composer.lock symfony.lock ./
|
|
RUN composer install --no-interaction --no-scripts --no-autoloader --prefer-dist
|
|
|
|
COPY . .
|
|
RUN composer dump-autoload --optimize --classmap-authoritative
|
|
|
|
# var/ is a .dockerignore'd host concern and gets a named volume mounted over it
|
|
# at runtime; create + own it so php-fpm (www-data) can write cache/logs/sessions.
|
|
RUN mkdir -p var && chown -R www-data:www-data var
|
|
|
|
# /var/www/html is bind-mounted from the host at runtime, owned by whoever
|
|
# deployed it - keep git from refusing to touch it.
|
|
RUN git config --system --add safe.directory /var/www/html
|
|
|
|
USER www-data
|
|
|
|
EXPOSE 9000
|
|
|
|
CMD ["php-fpm"]
|