diff --git a/.env.example b/.env.example index 314416b..f9d77df 100644 --- a/.env.example +++ b/.env.example @@ -17,11 +17,12 @@ DATABASE_IMAGE="mariadb:12" DATABASE_ROOT_PASSWORD="" # Apache et PHP -APACHE_PHP_VERSION="php:8.5-apache" +APACHE_PHP_IMAGE="php:8.5-apache" APACHE_ADMIN_EMAIL="" +APACHE_ROOT_PATH="/var/www/html" # FrankenPHP -FRANKENPHP_VERSION="dunglas/frankenphp:1.11.2-php8.5" +FRANKENPHP_IMAGE="dunglas/frankenphp:1.11.2-php8.5" FRANKENPHP_ROOT_PATH="/app/" # Nom du fichier de configuration OPcache à utiliser diff --git a/docker/Dockerfile.frankenphp b/docker/Dockerfile.server-php similarity index 79% rename from docker/Dockerfile.frankenphp rename to docker/Dockerfile.server-php index 96dc102..ddf4ad8 100644 --- a/docker/Dockerfile.frankenphp +++ b/docker/Dockerfile.server-php @@ -1,15 +1,21 @@ -ARG FRANKENPHP_IMAGE=unknown +ARG SERVER_PHP_IMAGE=unknown ARG COMPOSER_IMAGE=composer:latest # Image composer FROM ${COMPOSER_IMAGE} AS php_composer -# Image FrankenPHP -FROM ${FRANKENPHP_IMAGE} +# Image du serveur PHP à utiliser (Apache, FrankenPHP...) +FROM ${SERVER_PHP_IMAGE} # Installation de Composser COPY --from=php_composer /usr/bin/composer /usr/local/bin/composer +# Activation du mode rewrite d'Apache +ARG SERVER_PHP_IMAGE +RUN if echo "$SERVER_PHP_IMAGE" | grep -qi apache; then \ + a2enmod rewrite headers; \ + fi + RUN apt-get update && apt-get install -y \ git \ mariadb-client \ diff --git a/docker/docker-compose.apache-php.yml b/docker/docker-compose.apache-php.yml index a9b20af..c28b7d8 100644 --- a/docker/docker-compose.apache-php.yml +++ b/docker/docker-compose.apache-php.yml @@ -1,13 +1,24 @@ services: server-php: - image: ${APACHE_PHP_VERSION} + build: + context: . + args: + SERVER_PHP_IMAGE: ${APACHE_PHP_IMAGE} + dockerfile: ${PWD}/docker/Dockerfile.server-php environment: - - APACHE_ADMIN_EMAIL=${APACHE_ADMIN_EMAIL} + APACHE_ADMIN_EMAIL: ${APACHE_ADMIN_EMAIL} + APACHE_ROOT_PATH: ${APACHE_ROOT_PATH} + # Configuration en local + VITE_PORT: ${VITE_PORT} volumes: - ${PWD}/www:/var/www/html - ${PWD}/host/apache/logs:/var/log/apache2 - ${PWD}/host/apache/conf/vhost.conf:/etc/apache2/sites-available/000-default.conf - - ${PWD}/host/apache/conf/apache2.conf:/etc/apache2/conf-enabled/docker.conf \ No newline at end of file + - ${PWD}/host/apache/conf/apache2.conf:/etc/apache2/conf-enabled/docker.conf + - ${PWD}/host/php/conf/${OPCACHE_CONFIG_FILE:-opcache.default.ini}:/usr/local/etc/php/conf.d/opcache.ini + - ${PWD}/upload:/app/public/upload + + user: "${UID:-1000}:${GID:-1000}" \ No newline at end of file diff --git a/docker/docker-compose.frankenphp.yml b/docker/docker-compose.frankenphp.yml index 1aad9cc..af0cbd7 100644 --- a/docker/docker-compose.frankenphp.yml +++ b/docker/docker-compose.frankenphp.yml @@ -4,8 +4,8 @@ services: build: context: . args: - FRANKENPHP_IMAGE: ${FRANKENPHP_VERSION} - dockerfile: ${PWD}/docker/Dockerfile.frankenphp + SERVER_PHP_IMAGE: ${FRANKENPHP_IMAGE} + dockerfile: ${PWD}/docker/Dockerfile.server-php environment: FRANKENPHP_ROOT_PATH: ${FRANKENPHP_ROOT_PATH} diff --git a/host/apache/conf/vhost.conf b/host/apache/conf/vhost.conf index 512a8ef..9808c6e 100644 --- a/host/apache/conf/vhost.conf +++ b/host/apache/conf/vhost.conf @@ -1,7 +1,9 @@ ServerAdmin ${APACHE_ADMIN_EMAIL} - + DocumentRoot ${APACHE_ROOT_PATH} + + Options -Indexes +FollowSymLinks AllowOverride All