# Multi-stage: Composer deps, dann PHP-Apache Runtime (Symfony public/ als Docroot)
FROM composer:2 AS composer
WORKDIR /app
ENV COMPOSER_ALLOW_SUPERUSER=1
COPY composer.json composer.lock ./
COPY . .
COPY deploy/.env.docker-build /app/.env
RUN composer install --no-dev --optimize-autoloader --classmap-authoritative --no-interaction --no-scripts --ignore-platform-reqs

# Assets/Importmap werden nach dem ersten Container-Start ausgeführt (siehe deploy/provision.sh),
# damit der Build ohne DB und ohne Deprecation-Exit-Code durchläuft.

FROM php:8.2-apache-bookworm

RUN apt-get update && apt-get install -y --no-install-recommends \
    curl \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libicu-dev \
    libpng-dev \
    libzip-dev \
    zip \
    && docker-php-ext-configure intl \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) intl pdo_mysql opcache gd zip \
    && docker-php-ext-enable opcache \
    && rm -rf /var/lib/apt/lists/*

RUN a2enmod rewrite headers

COPY deploy/apache/000-default.conf /etc/apache2/sites-available/000-default.conf

WORKDIR /var/www/html
COPY --from=composer /app /var/www/html

COPY deploy/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh \
    && mkdir -p public/uploads/media public/uploads/favicons public/uploads/profiles \
    && chown -R www-data:www-data var public/uploads

ENV APP_ENV=prod
ENV APP_DEBUG=0

HEALTHCHECK --interval=30s --timeout=5s --start-period=90s --retries=3 \
    CMD curl -fsS http://127.0.0.1/health.php >/dev/null || exit 1

EXPOSE 80

ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["apache2-foreground"]
