# Build-Kontext ist der Repo-Root (siehe .gitea/workflows/docker-build.yml und docker-compose.yml) -
# nötig, um zusätzlich zu omsorgWeb/ auch die Root-.htaccess (liegt bewusst außerhalb von
# omsorgWeb/, siehe README.txt "upload directory contents to htdocs") mit ins Image zu kopieren.
FROM php:8.2-apache

RUN apt-get update \
    && apt-get install -y --no-install-recommends libcurl4-openssl-dev libonig-dev \
    && docker-php-ext-install pdo_mysql mbstring curl \
    && a2enmod rewrite headers \
    && rm -rf /var/lib/apt/lists/*

# Debians Standard-apache2.conf setzt AllowOverride None für /var/www/ - ohne dieses Drop-in
# würden alle .htaccess-Regeln der App stillschweigend ignoriert (siehe Datei-Kommentar).
COPY omsorgWeb/docker/allow-htaccess.conf /etc/apache2/conf-available/allow-htaccess.conf
RUN a2enconf allow-htaccess

# Ersetzt die mitgelieferte Default-vhost (identisch, nur mit einer zusätzlichen Rewrite-Regel,
# die den TLS-terminierenden Host-nginx davor erkennt - sonst redirected die root-.htaccess
# endlos, siehe Datei-Kommentar. Muss im <VirtualHost>-Block selbst stehen, ein conf-enabled-Drop-in
# außerhalb davon wird nicht mit der .htaccess desselben Pfads zusammengeführt.)
COPY omsorgWeb/docker/000-default.conf /etc/apache2/sites-enabled/000-default.conf

COPY omsorgWeb/ /var/www/html/
COPY .htaccess /var/www/html/.htaccess

RUN chmod +x /var/www/html/docker/docker-entrypoint.sh \
    # Schreibbare Verzeichnisse für Datei-Uploads zur Laufzeit (siehe docker-compose.yml-Volumes).
    # Existieren im Repo NICHT zwingend (Root-.gitignore schließt sie komplett aus - lokal hatten
    # sie bei mir Testdateien, ein frischer CI-Checkout hat sie gar nicht) - deshalb erst anlegen,
    # dann Besitzer auf den Apache-User setzen, damit PHP dort schreiben kann.
    && mkdir -p \
        /var/www/html/mitarbeiter-app-legacy/uploads \
        /var/www/html/mitarbeiter-app-legacy/downloads \
        /var/www/html/mitarbeiter-app-legacy/fortbildung-materials \
        /var/www/html/mitarbeiter-app-legacy/assets/avatars \
        /var/www/html/mitarbeiter-app-legacy/data \
    && chown -R www-data:www-data \
        /var/www/html/mitarbeiter-app-legacy/uploads \
        /var/www/html/mitarbeiter-app-legacy/downloads \
        /var/www/html/mitarbeiter-app-legacy/fortbildung-materials \
        /var/www/html/mitarbeiter-app-legacy/assets/avatars \
        /var/www/html/mitarbeiter-app-legacy/data

EXPOSE 80

ENTRYPOINT ["/var/www/html/docker/docker-entrypoint.sh"]
