FROM php:8.2-apache # GD : nécessaire à TCPDF pour les PNG avec canal alpha (logo) et à la génération des QR codes # (invitations SM, lot 1 - synthèse §47). RUN apt-get update \ && apt-get install -y --no-install-recommends libpng-dev libjpeg62-turbo-dev libfreetype6-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install mysqli pdo pdo_mysql gd \ && rm -rf /var/lib/apt/lists/* RUN a2enmod rewrite RUN a2enmod headers RUN sed -i '//,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf RUN echo "error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE" > /usr/local/etc/php/conf.d/error-reporting.ini RUN echo "display_errors = On" >> /usr/local/etc/php/conf.d/error-reporting.ini # www-data doit pouvoir écrire dans /home/koriolan/versions/shipheart (monté depuis l'hôte, propriétaire # uid/gid 1001 - probablement l'utilisateur koriolan du VPS) - nécessaire pour la génération de package # depuis la partie Administration du site (cf synthèse §37). Ajout au groupe plutôt que modification des # permissions/propriétaire côté hôte, pour ne rien changer à ce qui existe déjà en dehors du conteneur. RUN groupadd -g 1001 koriolan_grp && usermod -aG koriolan_grp www-data # Valeur par défaut de l'image (2M) trop faible pour l'upload de packages (jusqu'à 5 Mo aujourd'hui, # cf MAX_TAILLE_FICHIER_VERSION) - marge prise à 20M pour ne pas avoir à y revenir si un futur package # grossit. post_max_size doit rester supérieur ou égal à upload_max_filesize (limite le corps entier de # la requête POST, pas seulement le fichier) - cf synthèse §37. RUN echo "upload_max_filesize = 20M" > /usr/local/etc/php/conf.d/upload-limits.ini RUN echo "post_max_size = 20M" >> /usr/local/etc/php/conf.d/upload-limits.ini # Vérificateur du Live distant (synthèse §49) : second port INTERNE 8081, servant /var/www/live (hors du site public # /var/www/html). Aucun port publié et aucun routeur Traefik public vers ce port : seul Traefik l'appelle (ForwardAuth # et ouverture de session), par le réseau Docker. commun.php (fonctions) n'est pas appelable directement. RUN echo "Listen 8081" >> /etc/apache2/ports.conf \ && printf '%s\n' \ '' \ ' DocumentRoot /var/www/live' \ ' ' \ ' Options -Indexes' \ ' AllowOverride None' \ ' Require all granted' \ ' ' \ ' Require all denied' \ ' ' \ ' ' \ '' > /etc/apache2/sites-available/live.conf \ && a2ensite live