From 60d1ec13643464572a04a094cc786e39db348064 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Mon, 24 Nov 2025 22:16:16 +0100 Subject: [PATCH 1/3] Update docker conf --- .env.example | 18 ++++++++++----- Dockerfile | 13 ----------- docker-compose.yml | 23 -------------------- docker/docker-compose.yml | 46 +++++++++++++++++++++++++++++++++++++++ docker/entrypoint.sh | 28 ++++++++++++++++++++++++ docker/nginx/default.conf | 16 ++++++++++++++ docker/php/Dockerfile | 19 ++++++++++++++++ 7 files changed, 121 insertions(+), 42 deletions(-) delete mode 100644 Dockerfile delete mode 100644 docker-compose.yml create mode 100644 docker/docker-compose.yml create mode 100644 docker/entrypoint.sh create mode 100644 docker/nginx/default.conf create mode 100644 docker/php/Dockerfile diff --git a/.env.example b/.env.example index 8e70f2f..408cc20 100644 --- a/.env.example +++ b/.env.example @@ -1,8 +1,11 @@ +GIT_REPO= +GIT_TOKEN= + APP_NAME=Laravel APP_ENV=local APP_KEY= APP_DEBUG=true -APP_URL=http://localhost +APP_URL=http://localhost:8000 APP_LOCALE=en APP_FALLBACK_LOCALE=en @@ -20,18 +23,19 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug -DB_CONNECTION=mariadb -DB_HOST=127.0.0.1 +DB_CONNECTION=mysql +DB_HOST=mariadb DB_PORT=3306 -DB_DATABASE=sae_back +DB_DATABASE=laravel DB_USERNAME=root -DB_PASSWORD= +DB_PASSWORD=root SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ -SESSION_DOMAIN=null +SESSION_DOMAIN=localhost +SESSION_SECURE_COOKIE=false BROADCAST_CONNECTION=log FILESYSTEM_DISK=local @@ -63,3 +67,5 @@ AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" + +SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1,localhost:8000 diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 2f68456..0000000 --- a/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM php:8.4-fpm - -RUN apt-get update && apt-get install -y \ - git unzip libzip-dev libpng-dev libonig-dev \ - && docker-php-ext-install pdo_mysql zip - -COPY --from=composer:2 /usr/bin/composer /usr/bin/composer - -WORKDIR /var/www - -COPY . . - -RUN composer install --no-dev --optimize-autoloader diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 0ea0115..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -services: - laravel: - build: . - container_name: laravel-app - volumes: - - .:/var/www - ports: - - "8000:8000" - depends_on: - - mariadb - command: php artisan serve --host=0.0.0.0 --port=8000 - - mariadb: - image: mariadb:latest - container_name: mariadb - environment: - MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: laravel - volumes: - - db_data:/var/lib/mysql - -volumes: - db_data: diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..0693abc --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,46 @@ +version: "3.8" + +services: + php: + build: + context: . + dockerfile: ./php/Dockerfile + container_name: app-php + volumes: + - ../:/var/www/app + environment: + - GIT_TOKEN=${GIT_TOKEN} + - GIT_REPO=${GIT_REPO} + depends_on: + - mariadb + + + nginx: + image: nginx + container_name: app-nginx + volumes: + - ../:/var/www/app + - ./nginx/default.conf:/etc/nginx/conf.d/default.conf + ports: + - "80:80" + depends_on: + - php + + mariadb: + image: mariadb:latest + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: laravel + ports: + - "3306:3306" + volumes: + - dbdata:/var/lib/mysql + +volumes: + dbdata: + +networks: + default: + ipam: + config: + - subnet: 192.168.200.0/24 diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 0000000..74d5629 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +APP_DIR=/var/www/app + +# Vérifie si le repo existe +if [ ! -d "$APP_DIR/.git" ]; then + echo "📥 Aucun projet trouvé. Clonage..." + git clone https://oauth2:${GIT_TOKEN}@${GIT_REPO} $APP_DIR +else + echo "🔄 Projet existant. Pull..." + cd $APP_DIR + git pull +fi + +cd $APP_DIR + +# Permissions sur storage et cache +mkdir -p storage bootstrap/cache +chown -R www-data:www-data storage bootstrap/cache +chmod -R 775 storage bootstrap/cache + +# Composer & artisan +composer install --no-interaction --prefer-dist +php artisan key:generate --force +php artisan migrate --force +php artisan config:cache + +exec php-fpm diff --git a/docker/nginx/default.conf b/docker/nginx/default.conf new file mode 100644 index 0000000..a9d21ff --- /dev/null +++ b/docker/nginx/default.conf @@ -0,0 +1,16 @@ +server { + listen 80; + root /var/www/app/public; + + index index.php index.html; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_pass php:9000; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } +} diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile new file mode 100644 index 0000000..05b1c97 --- /dev/null +++ b/docker/php/Dockerfile @@ -0,0 +1,19 @@ +FROM php:8.4-fpm + +# Install dependencies +RUN apt-get update && apt-get install -y \ + git unzip libzip-dev libpng-dev libonig-dev \ + && docker-php-ext-install pdo_mysql zip + +# Install composer +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +# Copy entrypoint +COPY ./entrypoint.sh /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh + +# Working directory +WORKDIR /var/www/app + +ENTRYPOINT ["entrypoint.sh"] +CMD ["php-fpm"] From 1f077cfdd25b5795c4735ba8a6f6ff0aec55deb2 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Mon, 24 Nov 2025 22:19:26 +0100 Subject: [PATCH 2/3] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 05c79b2..3ef9711 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,8 @@ Exemple configuration base de donnée (.env) - Installer Docker - Lancer les commandes depuis la racine du projet: ``` -docker compose up -d -docker compose exec laravel php artisan key:generate -docker compose exec laravel php artisan migrate +docker compose down -v +docker compose up --build -d +docker exec app-php php artisan key:generate +docker exec app-php php artisan migrate ``` From 6c4d03eb6b538980b5514ae7f098998979febd36 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Mon, 24 Nov 2025 23:18:10 +0100 Subject: [PATCH 3/3] Update --- README.md | 3 +++ docker/entrypoint.sh | 8 -------- docker/php/Dockerfile | 4 ---- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 3ef9711..471be1e 100644 --- a/README.md +++ b/README.md @@ -33,3 +33,6 @@ docker compose up --build -d docker exec app-php php artisan key:generate docker exec app-php php artisan migrate ``` + +docker compose stop +docker compose start diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 74d5629..cfd9902 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -2,27 +2,19 @@ APP_DIR=/var/www/app -# Vérifie si le repo existe if [ ! -d "$APP_DIR/.git" ]; then - echo "📥 Aucun projet trouvé. Clonage..." git clone https://oauth2:${GIT_TOKEN}@${GIT_REPO} $APP_DIR else - echo "🔄 Projet existant. Pull..." cd $APP_DIR git pull fi cd $APP_DIR -# Permissions sur storage et cache mkdir -p storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache chmod -R 775 storage bootstrap/cache -# Composer & artisan composer install --no-interaction --prefer-dist -php artisan key:generate --force -php artisan migrate --force -php artisan config:cache exec php-fpm diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile index 05b1c97..9c5cc81 100644 --- a/docker/php/Dockerfile +++ b/docker/php/Dockerfile @@ -1,18 +1,14 @@ FROM php:8.4-fpm -# Install dependencies RUN apt-get update && apt-get install -y \ git unzip libzip-dev libpng-dev libonig-dev \ && docker-php-ext-install pdo_mysql zip -# Install composer COPY --from=composer:2 /usr/bin/composer /usr/bin/composer -# Copy entrypoint COPY ./entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh -# Working directory WORKDIR /var/www/app ENTRYPOINT ["entrypoint.sh"]