44 lines
2.6 KiB
Docker
44 lines
2.6 KiB
Docker
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 \/var\/www\/>/,/<\/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' \
|
|
'<VirtualHost *:8081>' \
|
|
' DocumentRoot /var/www/live' \
|
|
' <Directory /var/www/live>' \
|
|
' Options -Indexes' \
|
|
' AllowOverride None' \
|
|
' Require all granted' \
|
|
' <Files "commun.php">' \
|
|
' Require all denied' \
|
|
' </Files>' \
|
|
' </Directory>' \
|
|
'</VirtualHost>' > /etc/apache2/sites-available/live.conf \
|
|
&& a2ensite live |