# Generated with bin/generate-dockerfile.php.

ARG PHP_VERSION=8.5
ARG NODE_VERSION=20
ARG NGINX_VERSION=1
ARG DEBIAN_VERSION=trixie


# ======
# Assets
# ======

FROM node:${NODE_VERSION}-alpine AS assets

WORKDIR /app

COPY assets assets/
COPY package.json package-lock.json postcss.config.js webpack.config.js ./

RUN set -eux; \
    npm ci; \
    npm run build-prod; \
    npm cache clean --force; \
    rm -rf node_modules;


# =============
# Composer deps
# =============

FROM php:8.5-alpine AS composer_deps

ADD --chmod=+x \
    https://getcomposer.org/download/latest-2.x/composer.phar \
    /usr/local/bin/composer

ENV COMPOSER_ALLOW_SUPERUSER=1 \
    COMPOSER_HTACCESS_PROTECT=0 \
    COMPOSER_HOME="/tmp" \
    COMPOSER_NO_DEV=1

WORKDIR /app

COPY composer.* symfony.lock ./

RUN --mount=type=secret,id=composer_auth,target=/tmp/auth.json \
    --mount=type=cache,target=/tmp/cache \
    composer install --ignore-platform-reqs --no-progress --no-scripts


# ======================
# fcgi+php base (alpine)
# ======================

FROM php:${PHP_VERSION}-fpm-alpine AS fcgi_php_alpine_base

ARG PHP_WITHOUT_AMQP=0

ADD --chmod=0755 \
    https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \
    /usr/local/bin/

RUN set -eux; \
    install-php-extensions \
        @composer-2 \
        $([ "$PHP_WITHOUT_AMQP" -eq 0 ] && echo "amqp") \
        gd \
        intl \
        opcache \
        pdo_pgsql \
        zip \
    ; \
    if ! php -r 'exit(extension_loaded("mbstring") ? 0 : 1);'; then \
        docker-php-ext-configure mbstring --disable-mbregex; \
        docker-php-ext-install -j$(nproc) mbstring; \
    fi; \
    apk add --no-cache \
        acl \
        su-exec \
    ;

ENV COMPOSER_ALLOW_SUPERUSER=1 \
    COMPOSER_HTACCESS_PROTECT=0 \
    COMPOSER_HOME="/tmp" \
    COMPOSER_MEMORY_LIMIT=-1 \
    POSTMILL_WRITE_DIRS="\
        /app/public/media/cache \
        /app/public/submission_images \
        /app/var \
        /tmp \
    " \
    SU_USER=www-data

ENTRYPOINT ["/usr/local/bin/postmill-entrypoint.sh"]

WORKDIR /app


# ======================
# fcgi+php prod (alpine)
# ======================

FROM fcgi_php_alpine_base AS fcgi_php_alpine

COPY LICENSE .env composer.* symfony.lock ./
COPY bin/console bin/
COPY config config/
COPY migrations migrations/
COPY docker/php/zz-postmill.ini "${PHP_INI_DIR}/conf.d/"
COPY docker/php/zz-postmill-prod.ini "${PHP_INI_DIR}/conf.d/"
COPY public/index.php public/
COPY --from=assets /app/public/build/*.json public/build/
COPY src src/
COPY templates templates/
COPY translations translations/
COPY --from=composer_deps /app/vendor vendor/

ENV APP_ENV=prod \
    COMPOSER_NO_DEV=1 \
    DATABASE_URL='pgsql://postmill:secret@db/postmill' \
    LOG_FILE='php://stderr'

RUN set -eux; \
    cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"; \
    composer dump-autoload --classmap-authoritative --optimize; \
    composer run-script post-install-cmd; \
    composer dump-env prod; \
    composer clear-cache;

VOLUME /app/public/media/cache
VOLUME /app/public/submission_images
VOLUME /app/var/cache/prod/pools
VOLUME /app/var/sessions

ARG APP_BRANCH=""
ARG APP_VERSION=""
ENV APP_BRANCH=${APP_BRANCH} \
    APP_VERSION=${APP_VERSION}

COPY docker/php/postmill-entrypoint.sh /usr/local/bin/
COPY docker/php/postmill-startup.sh /usr/local/bin/

CMD ["postmill-startup.sh", "php-fpm"]


# =====================
# fcgi+php dev (alpine)
# =====================

FROM fcgi_php_alpine_base AS fcgi_php_alpine_dev

ARG PHP_WITHOUT_PCOV=0
ARG PHP_WITHOUT_XDEBUG=0

RUN set -eux; \
    chmod -R go=u /tmp; \
    apk add --no-cache git; \
    git config --system --add safe.directory '*'; \
    export DEV_EXTS=" \
        $([ "$PHP_WITHOUT_PCOV" -eq 0 ] && echo "pcov") \
        $([ "$PHP_WITHOUT_XDEBUG" -eq 0 ] && echo "xdebug") \
    "; \
    if [ -n "$(echo $DEV_EXTS | xargs)" ]; then \
        install-php-extensions $DEV_EXTS; \
    fi; \
    cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini";

ENV XDEBUG_MODE="develop,debug" \
    XDEBUG_CONFIG="client_host=host.docker.internal"

CMD ["postmill-startup-dev.sh", "php-fpm"]


# ========================
# fcgi+nginx prod (alpine)
# ========================

FROM nginx:${NGINX_VERSION}-alpine AS fcgi_nginx_alpine

WORKDIR /app

COPY LICENSE .
COPY docker/nginx/conf.d/default.conf /etc/nginx/conf.d/
COPY docker/nginx/conf.d/gzip.conf /etc/nginx/conf.d/
COPY --from=assets /app/public/build public/build/
COPY docker/nginx/root-*.conf /etc/nginx/postmill/
COPY docker/nginx/server-*.conf /etc/nginx/postmill/
COPY docker/nginx/upstream-*.conf /etc/nginx/postmill/
COPY example_files/public/* public/


# ======================
# fcgi+php base (debian)
# ======================

FROM php:${PHP_VERSION}-fpm-${DEBIAN_VERSION} AS fcgi_php_debian_base

ARG PHP_WITHOUT_AMQP=0

ADD --chmod=0755 \
    https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \
    /usr/local/bin/

RUN set -eux; \
    install-php-extensions \
        @composer-2 \
        $([ "$PHP_WITHOUT_AMQP" -eq 0 ] && echo "amqp") \
        gd \
        intl \
        opcache \
        pdo_pgsql \
        zip \
    ; \
    if ! php -r 'exit(extension_loaded("mbstring") ? 0 : 1);'; then \
        docker-php-ext-configure mbstring --disable-mbregex; \
        docker-php-ext-install -j$(nproc) mbstring; \
    fi; \
    export DEBIAN_FRONTEND=noninteractive; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        acl \
        gosu \
        unzip \
    ; \
    rm -rf /var/lib/apt/lists/*;

ENV COMPOSER_ALLOW_SUPERUSER=1 \
    COMPOSER_HTACCESS_PROTECT=0 \
    COMPOSER_HOME="/tmp" \
    COMPOSER_MEMORY_LIMIT=-1 \
    POSTMILL_WRITE_DIRS="\
        /app/public/media/cache \
        /app/public/submission_images \
        /app/var \
        /tmp \
    " \
    SU_USER=www-data

ENTRYPOINT ["/usr/local/bin/postmill-entrypoint.sh"]

WORKDIR /app


# ======================
# fcgi+php prod (debian)
# ======================

FROM fcgi_php_debian_base AS fcgi_php_debian

COPY LICENSE .env composer.* symfony.lock ./
COPY bin/console bin/
COPY config config/
COPY migrations migrations/
COPY docker/php/zz-postmill.ini "${PHP_INI_DIR}/conf.d/"
COPY docker/php/zz-postmill-prod.ini "${PHP_INI_DIR}/conf.d/"
COPY public/index.php public/
COPY --from=assets /app/public/build/*.json public/build/
COPY src src/
COPY templates templates/
COPY translations translations/
COPY --from=composer_deps /app/vendor vendor/

ENV APP_ENV=prod \
    COMPOSER_NO_DEV=1 \
    DATABASE_URL='pgsql://postmill:secret@db/postmill' \
    LOG_FILE='php://stderr'

RUN set -eux; \
    cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"; \
    composer dump-autoload --classmap-authoritative --optimize; \
    composer run-script post-install-cmd; \
    composer dump-env prod; \
    composer clear-cache;

VOLUME /app/public/media/cache
VOLUME /app/public/submission_images
VOLUME /app/var/cache/prod/pools
VOLUME /app/var/sessions

ARG APP_BRANCH=""
ARG APP_VERSION=""
ENV APP_BRANCH=${APP_BRANCH} \
    APP_VERSION=${APP_VERSION}

COPY docker/php/postmill-entrypoint.sh /usr/local/bin/
COPY docker/php/postmill-startup.sh /usr/local/bin/

CMD ["postmill-startup.sh", "php-fpm"]


# =====================
# fcgi+php dev (debian)
# =====================

FROM fcgi_php_debian_base AS fcgi_php_debian_dev

ARG PHP_WITHOUT_PCOV=0
ARG PHP_WITHOUT_XDEBUG=0

RUN set -eux; \
    chmod -R go=u /tmp; \
    export DEBIAN_FRONTEND=noninteractive; \
    apt-get update; \
    apt-get install -y --no-install-recommends git; \
    rm -rf /var/lib/apt/lists/*; \
    git config --system --add safe.directory '*'; \
    export DEV_EXTS=" \
        $([ "$PHP_WITHOUT_PCOV" -eq 0 ] && echo "pcov") \
        $([ "$PHP_WITHOUT_XDEBUG" -eq 0 ] && echo "xdebug") \
    "; \
    if [ -n "$(echo $DEV_EXTS | xargs)" ]; then \
        install-php-extensions $DEV_EXTS; \
    fi; \
    cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini";

ENV XDEBUG_MODE="develop,debug" \
    XDEBUG_CONFIG="client_host=host.docker.internal"

CMD ["postmill-startup-dev.sh", "php-fpm"]


# ========================
# fcgi+nginx prod (debian)
# ========================

FROM nginx:${NGINX_VERSION}-${DEBIAN_VERSION} AS fcgi_nginx_debian

WORKDIR /app

COPY LICENSE .
COPY docker/nginx/conf.d/default.conf /etc/nginx/conf.d/
COPY docker/nginx/conf.d/gzip.conf /etc/nginx/conf.d/
COPY --from=assets /app/public/build public/build/
COPY docker/nginx/root-*.conf /etc/nginx/postmill/
COPY docker/nginx/server-*.conf /etc/nginx/postmill/
COPY docker/nginx/upstream-*.conf /etc/nginx/postmill/
COPY example_files/public/* public/


# ========================
# FrankenPHP base (alpine)
# ========================

FROM dunglas/frankenphp:1-php${PHP_VERSION}-alpine AS frankenphp_alpine_base

ARG PHP_WITHOUT_AMQP=0

RUN set -eux; \
    install-php-extensions \
        @composer-2 \
        $([ "$PHP_WITHOUT_AMQP" -eq 0 ] && echo "amqp") \
        gd \
        intl \
        opcache \
        pdo_pgsql \
        zip \
    ; \
    if ! php -r 'exit(extension_loaded("mbstring") ? 0 : 1);'; then \
        docker-php-ext-configure mbstring --disable-mbregex; \
        docker-php-ext-install -j$(nproc) mbstring; \
    fi; \
    apk add --no-cache \
        acl \
        su-exec \
    ; \
    # caddy needs permission to listen on non-privileged ports
    setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp;

ENV COMPOSER_ALLOW_SUPERUSER=1 \
    COMPOSER_HTACCESS_PROTECT=0 \
    COMPOSER_HOME="/tmp" \
    COMPOSER_MEMORY_LIMIT=-1 \
    POSTMILL_WRITE_DIRS="\
        /app/public/media/cache \
        /app/public/submission_images \
        /app/var \
        /config \
        /data \
        /tmp \
    " \
    SU_USER=www-data

ENTRYPOINT ["/usr/local/bin/postmill-entrypoint.sh"]

WORKDIR /app


# ========================
# FrankenPHP prod (alpine)
# ========================

FROM frankenphp_alpine_base AS frankenphp_alpine

COPY LICENSE .env composer.* symfony.lock ./
COPY bin/console bin/
COPY config config/
COPY example_files/public/* public/
COPY migrations migrations/
COPY docker/php/zz-postmill.ini "${PHP_INI_DIR}/conf.d/"
COPY docker/php/zz-postmill-prod.ini "${PHP_INI_DIR}/conf.d/"
COPY public/index.php public/
COPY --from=assets /app/public/build public/build/
COPY src src/
COPY templates templates/
COPY translations translations/
COPY --from=composer_deps /app/vendor vendor/

ENV APP_ENV=prod \
    COMPOSER_NO_DEV=1 \
    DATABASE_URL='pgsql://postmill:secret@db/postmill' \
    LOG_FILE='php://stderr'

RUN set -eux; \
    cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"; \
    composer dump-autoload --classmap-authoritative --optimize; \
    composer run-script post-install-cmd; \
    composer dump-env prod; \
    composer clear-cache;

VOLUME /app/public/media/cache
VOLUME /app/public/submission_images
VOLUME /app/var/cache/prod/pools
VOLUME /app/var/sessions

ARG APP_BRANCH=""
ARG APP_VERSION=""
ENV APP_BRANCH=${APP_BRANCH} \
    APP_VERSION=${APP_VERSION} \
    CADDY_SERVER_EXTRA_DIRECTIVES="import cache.caddyfile"

COPY docker/frankenphp/Caddyfile /etc/caddy/Caddyfile
COPY docker/frankenphp/cache.caddyfile /etc/caddy/
COPY docker/frankenphp/Caddyfile /etc/frankenphp/Caddyfile
COPY docker/frankenphp/cache.caddyfile /etc/frankenphp/
COPY docker/php/postmill-entrypoint.sh /usr/local/bin/
COPY docker/php/postmill-startup.sh /usr/local/bin/

CMD ["postmill-startup.sh", "frankenphp", "run", "--config", "/etc/frankenphp/Caddyfile", "--adapter", "caddyfile"]


# =======================
# FrankenPHP dev (alpine)
# =======================

FROM frankenphp_alpine_base AS frankenphp_alpine_dev

ARG PHP_WITHOUT_PCOV=0
ARG PHP_WITHOUT_XDEBUG=0

RUN set -eux; \
    chmod -R go=u /tmp; \
    apk add --no-cache git; \
    git config --system --add safe.directory '*'; \
    export DEV_EXTS=" \
        $([ "$PHP_WITHOUT_PCOV" -eq 0 ] && echo "pcov") \
        $([ "$PHP_WITHOUT_XDEBUG" -eq 0 ] && echo "xdebug") \
    "; \
    if [ -n "$(echo $DEV_EXTS | xargs)" ]; then \
        install-php-extensions $DEV_EXTS; \
    fi; \
    cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini";

ENV XDEBUG_MODE="develop,debug" \
    XDEBUG_CONFIG="client_host=host.docker.internal"

CMD ["postmill-startup-dev.sh", "frankenphp", "run", "--config", "/etc/frankenphp/Caddyfile", "--adapter", "caddyfile"]


# ========================
# FrankenPHP base (debian)
# ========================

FROM dunglas/frankenphp:1-php${PHP_VERSION}-${DEBIAN_VERSION} AS frankenphp_debian_base

ARG PHP_WITHOUT_AMQP=0

RUN set -eux; \
    install-php-extensions \
        @composer-2 \
        $([ "$PHP_WITHOUT_AMQP" -eq 0 ] && echo "amqp") \
        gd \
        intl \
        opcache \
        pdo_pgsql \
        zip \
    ; \
    if ! php -r 'exit(extension_loaded("mbstring") ? 0 : 1);'; then \
        docker-php-ext-configure mbstring --disable-mbregex; \
        docker-php-ext-install -j$(nproc) mbstring; \
    fi; \
    export DEBIAN_FRONTEND=noninteractive; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        acl \
        gosu \
        unzip \
    ; \
    rm -rf /var/lib/apt/lists/*; \
    # caddy needs permission to listen on non-privileged ports
    setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp;

ENV COMPOSER_ALLOW_SUPERUSER=1 \
    COMPOSER_HTACCESS_PROTECT=0 \
    COMPOSER_HOME="/tmp" \
    COMPOSER_MEMORY_LIMIT=-1 \
    POSTMILL_WRITE_DIRS="\
        /app/public/media/cache \
        /app/public/submission_images \
        /app/var \
        /config \
        /data \
        /tmp \
    " \
    SU_USER=www-data

ENTRYPOINT ["/usr/local/bin/postmill-entrypoint.sh"]

WORKDIR /app


# ========================
# FrankenPHP prod (debian)
# ========================

FROM frankenphp_debian_base AS frankenphp_debian

COPY LICENSE .env composer.* symfony.lock ./
COPY bin/console bin/
COPY config config/
COPY example_files/public/* public/
COPY migrations migrations/
COPY docker/php/zz-postmill.ini "${PHP_INI_DIR}/conf.d/"
COPY docker/php/zz-postmill-prod.ini "${PHP_INI_DIR}/conf.d/"
COPY public/index.php public/
COPY --from=assets /app/public/build public/build/
COPY src src/
COPY templates templates/
COPY translations translations/
COPY --from=composer_deps /app/vendor vendor/

ENV APP_ENV=prod \
    COMPOSER_NO_DEV=1 \
    DATABASE_URL='pgsql://postmill:secret@db/postmill' \
    LOG_FILE='php://stderr'

RUN set -eux; \
    cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"; \
    composer dump-autoload --classmap-authoritative --optimize; \
    composer run-script post-install-cmd; \
    composer dump-env prod; \
    composer clear-cache;

VOLUME /app/public/media/cache
VOLUME /app/public/submission_images
VOLUME /app/var/cache/prod/pools
VOLUME /app/var/sessions

ARG APP_BRANCH=""
ARG APP_VERSION=""
ENV APP_BRANCH=${APP_BRANCH} \
    APP_VERSION=${APP_VERSION} \
    CADDY_SERVER_EXTRA_DIRECTIVES="import cache.caddyfile"

COPY docker/frankenphp/Caddyfile /etc/caddy/Caddyfile
COPY docker/frankenphp/cache.caddyfile /etc/caddy/
COPY docker/frankenphp/Caddyfile /etc/frankenphp/Caddyfile
COPY docker/frankenphp/cache.caddyfile /etc/frankenphp/
COPY docker/php/postmill-entrypoint.sh /usr/local/bin/
COPY docker/php/postmill-startup.sh /usr/local/bin/

CMD ["postmill-startup.sh", "frankenphp", "run", "--config", "/etc/frankenphp/Caddyfile", "--adapter", "caddyfile"]


# =======================
# FrankenPHP dev (debian)
# =======================

FROM frankenphp_debian_base AS frankenphp_debian_dev

ARG PHP_WITHOUT_PCOV=0
ARG PHP_WITHOUT_XDEBUG=0

RUN set -eux; \
    chmod -R go=u /tmp; \
    export DEBIAN_FRONTEND=noninteractive; \
    apt-get update; \
    apt-get install -y --no-install-recommends git; \
    rm -rf /var/lib/apt/lists/*; \
    git config --system --add safe.directory '*'; \
    export DEV_EXTS=" \
        $([ "$PHP_WITHOUT_PCOV" -eq 0 ] && echo "pcov") \
        $([ "$PHP_WITHOUT_XDEBUG" -eq 0 ] && echo "xdebug") \
    "; \
    if [ -n "$(echo $DEV_EXTS | xargs)" ]; then \
        install-php-extensions $DEV_EXTS; \
    fi; \
    cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini";

ENV XDEBUG_MODE="develop,debug" \
    XDEBUG_CONFIG="client_host=host.docker.internal"

CMD ["postmill-startup-dev.sh", "frankenphp", "run", "--config", "/etc/frankenphp/Caddyfile", "--adapter", "caddyfile"]


# ============================
# Apache+mod_php base (debian)
# ============================

FROM php:${PHP_VERSION}-apache-${DEBIAN_VERSION} AS apache_debian_base

ARG PHP_WITHOUT_AMQP=0

ADD --chmod=0755 \
    https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \
    /usr/local/bin/

RUN set -eux; \
    install-php-extensions \
        @composer-2 \
        $([ "$PHP_WITHOUT_AMQP" -eq 0 ] && echo "amqp") \
        gd \
        intl \
        opcache \
        pdo_pgsql \
        zip \
    ; \
    if ! php -r 'exit(extension_loaded("mbstring") ? 0 : 1);'; then \
        docker-php-ext-configure mbstring --disable-mbregex; \
        docker-php-ext-install -j$(nproc) mbstring; \
    fi; \
    export DEBIAN_FRONTEND=noninteractive; \
    apt-get update; \
    apt-get install -y --no-install-recommends \
        acl \
        gosu \
        unzip \
    ; \
    rm -rf /var/lib/apt/lists/*; \
    sed -ri -e 's!/var/www/html!/app/public!g' /etc/apache2/sites-available/*.conf; \
    sed -ri -e 's!/var/www!/app!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf; \
    a2enmod rewrite;

ENV COMPOSER_ALLOW_SUPERUSER=1 \
    COMPOSER_HTACCESS_PROTECT=0 \
    COMPOSER_HOME="/tmp" \
    COMPOSER_MEMORY_LIMIT=-1 \
    POSTMILL_WRITE_DIRS="\
        /app/public/media/cache \
        /app/public/submission_images \
        /app/var \
        /tmp \
    " \
    SU_USER=www-data

ENTRYPOINT ["/usr/local/bin/postmill-entrypoint.sh"]

WORKDIR /app


# ============================
# Apache+mod_php prod (debian)
# ============================

FROM apache_debian_base AS apache_debian

COPY LICENSE .env composer.* symfony.lock ./
COPY bin/console bin/
COPY config config/
COPY example_files/public/* public/
COPY migrations migrations/
COPY docker/php/zz-postmill.ini "${PHP_INI_DIR}/conf.d/"
COPY docker/php/zz-postmill-prod.ini "${PHP_INI_DIR}/conf.d/"
COPY public/index.php public/.htaccess public/
COPY --from=assets /app/public/build public/build/
COPY src src/
COPY templates templates/
COPY translations translations/
COPY --from=composer_deps /app/vendor vendor/

ENV APP_ENV=prod \
    COMPOSER_NO_DEV=1 \
    DATABASE_URL='pgsql://postmill:secret@db/postmill' \
    LOG_FILE='php://stderr'

RUN set -eux; \
    cp "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"; \
    composer dump-autoload --classmap-authoritative --optimize; \
    composer run-script post-install-cmd; \
    composer dump-env prod; \
    composer clear-cache;

VOLUME /app/public/media/cache
VOLUME /app/public/submission_images
VOLUME /app/var/cache/prod/pools
VOLUME /app/var/sessions

ARG APP_BRANCH=""
ARG APP_VERSION=""
ENV APP_BRANCH=${APP_BRANCH} \
    APP_VERSION=${APP_VERSION}

COPY docker/php/postmill-entrypoint.sh /usr/local/bin/
COPY docker/php/postmill-startup.sh /usr/local/bin/

CMD ["postmill-startup.sh", "apache2-foreground"]


# ===========================
# Apache+mod_php dev (debian)
# ===========================

FROM apache_debian_base AS apache_debian_dev

ARG PHP_WITHOUT_PCOV=0
ARG PHP_WITHOUT_XDEBUG=0

RUN set -eux; \
    chmod -R go=u /tmp; \
    export DEBIAN_FRONTEND=noninteractive; \
    apt-get update; \
    apt-get install -y --no-install-recommends git; \
    rm -rf /var/lib/apt/lists/*; \
    git config --system --add safe.directory '*'; \
    export DEV_EXTS=" \
        $([ "$PHP_WITHOUT_PCOV" -eq 0 ] && echo "pcov") \
        $([ "$PHP_WITHOUT_XDEBUG" -eq 0 ] && echo "xdebug") \
    "; \
    if [ -n "$(echo $DEV_EXTS | xargs)" ]; then \
        install-php-extensions $DEV_EXTS; \
    fi; \
    cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini";

ENV XDEBUG_MODE="develop,debug" \
    XDEBUG_CONFIG="client_host=host.docker.internal"

CMD ["postmill-startup-dev.sh", "apache2-foreground"]


# ============================================
# Aliases to avoid breaking existing workflows
# ============================================

FROM fcgi_php_alpine AS postmill_php
FROM fcgi_php_dev_alpine AS postmill_php_debug
FROM fcgi_nginx_alpine AS postmill_web
FROM frankenphp_debian AS frankenphp_prod
FROM frankenphp_debian_dev AS frankenphp_dev
