55 lines
1.1 KiB
Docker
55 lines
1.1 KiB
Docker
FROM dunglas/frankenphp:php8.4-alpine AS base
|
|
|
|
RUN install-php-extensions \
|
|
intl \
|
|
opcache \
|
|
pdo_pgsql \
|
|
zip
|
|
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
WORKDIR /app
|
|
|
|
###
|
|
# Dev stage
|
|
###
|
|
FROM base AS dev
|
|
|
|
COPY composer.json composer.lock symfony.lock ./
|
|
RUN composer install --no-scripts --no-autoloader --prefer-dist
|
|
|
|
COPY . .
|
|
RUN composer dump-autoload
|
|
|
|
ENV APP_ENV=dev \
|
|
SERVER_NAME=":80" \
|
|
POSTGRES_HOST=database \
|
|
POSTGRES_PORT=5432 \
|
|
POSTGRES_VERSION=16 \
|
|
POSTGRES_DB=app \
|
|
POSTGRES_USER=app \
|
|
POSTGRES_PASSWORD=pwd
|
|
|
|
###
|
|
# Prod stage
|
|
###
|
|
FROM base AS prod
|
|
|
|
COPY composer.json composer.lock symfony.lock ./
|
|
RUN composer install --no-dev --no-scripts --no-autoloader --prefer-dist
|
|
|
|
COPY . .
|
|
|
|
RUN APP_ENV=prod composer dump-autoload --classmap-authoritative \
|
|
&& APP_ENV=prod composer run-script post-install-cmd \
|
|
&& chown -R www-data:www-data var/
|
|
|
|
ENV APP_ENV=prod \
|
|
SERVER_NAME=localhost \
|
|
POSTGRES_HOST=database \
|
|
POSTGRES_PORT=5432 \
|
|
POSTGRES_VERSION=16 \
|
|
POSTGRES_DB=app \
|
|
POSTGRES_USER=app \
|
|
POSTGRES_PASSWORD=pwd
|