From 35a5f0d755c9b0260045d68d2aac6aeaa2442a93 Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Fri, 28 Nov 2025 18:55:13 +0000 Subject: [PATCH] Update docker-compose.yml --- docker-compose.yml | 73 +++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 3973709..8810069 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,5 @@ +version: "3.9" + services: mysql: image: mysql:8.4 @@ -7,10 +9,11 @@ services: MYSQL_DATABASE: gameovergne_app MYSQL_USER: gameovergne MYSQL_PASSWORD: gameovergne + # 🔒 Persistant + accessible depuis l'extérieur volumes: - - mysql-data:/var/lib/mysql + - ./mysql-data:/var/lib/mysql ports: - - 3306:3306 + - "3306:3306" # pour te connecter depuis ton Mac / un client SQL networks: - gameovergne restart: unless-stopped @@ -31,6 +34,7 @@ services: SPRING_DATASOURCE_USERNAME: gameovergne SPRING_DATASOURCE_PASSWORD: gameovergne SERVER_PORT: 3000 + # pense bien à avoir prestashop.base-url / prestashop.basic-auth dans application.properties ou via env si besoin networks: - gameovergne - traefik @@ -47,47 +51,44 @@ services: - traefik.http.routers.gameovergne-api.middlewares=gameovergne-api-stripprefix - traefik.http.middlewares.gameovergne-api-stripprefix.stripprefix.prefixes=/gameovergne-api -angular: - image: registry.vincent-guillet.fr/gameovergne-client:dev-latest - container_name: gameovergne-client - depends_on: - - spring - networks: - - gameovergne - - traefik - restart: unless-stopped - labels: - - traefik.enable=true - - traefik.docker.network=traefik + angular: + image: registry.vincent-guillet.fr/gameovergne-client:dev-latest + container_name: gameovergne-client + depends_on: + - spring + networks: + - gameovergne + - traefik + restart: unless-stopped + labels: + - traefik.enable=true + - traefik.docker.network=traefik - # FRONT sous /gameovergne (avec et sans slash final) - - traefik.http.routers.gameovergne-client.rule=Host(`dev.vincent-guillet.fr`) && (Path(`/gameovergne`) || PathPrefix(`/gameovergne/`)) - - traefik.http.routers.gameovergne-client.entrypoints=edge - - traefik.http.routers.gameovergne-client.service=gameovergne-client - - traefik.http.routers.gameovergne-client.middlewares=gameovergne-slash,gameovergne-client-stripprefix + # FRONT sous /gameovergne (avec et sans slash final) + - traefik.http.routers.gameovergne-client.rule=Host(`dev.vincent-guillet.fr`) && (Path(`/gameovergne`) || PathPrefix(`/gameovergne/`)) + - traefik.http.routers.gameovergne-client.entrypoints=edge + - traefik.http.routers.gameovergne-client.service=gameovergne-client + - traefik.http.routers.gameovergne-client.middlewares=gameovergne-slash,gameovergne-client-stripprefix - # Redirige /gameovergne vers /gameovergne/ - - traefik.http.middlewares.gameovergne-slash.redirectregex.regex=^https?://([^/]+)/gameovergne$ - - traefik.http.middlewares.gameovergne-slash.redirectregex.replacement=https://$${1}/gameovergne/ - - traefik.http.middlewares.gameovergne-slash.redirectregex.permanent=true + # Redirige /gameovergne vers /gameovergne/ + - traefik.http.middlewares.gameovergne-slash.redirectregex.regex=^https?://([^/]+)/gameovergne$ + - traefik.http.middlewares.gameovergne-slash.redirectregex.replacement=https://$${1}/gameovergne/ + - traefik.http.middlewares.gameovergne-slash.redirectregex.permanent=true - # Enlève /gameovergne avant d'envoyer vers Nginx - - traefik.http.middlewares.gameovergne-client-stripprefix.stripprefix.prefixes=/gameovergne + # Enlève /gameovergne avant d'envoyer vers Nginx (le conteneur Angular) + - traefik.http.middlewares.gameovergne-client-stripprefix.stripprefix.prefixes=/gameovergne - # Service vers Nginx (port 80 dans le conteneur) - - traefik.http.services.gameovergne-client.loadbalancer.server.port=80 + # Service vers Nginx (port 80 dans le conteneur) + - traefik.http.services.gameovergne-client.loadbalancer.server.port=80 - # Proxy Presta via /gameovergne/ps -> même service - - traefik.http.routers.gameovergne-ps.rule=Host(`dev.vincent-guillet.fr`) && PathPrefix(`/gameovergne/ps`) - - traefik.http.routers.gameovergne-ps.entrypoints=edge - - traefik.http.routers.gameovergne-ps.service=gameovergne-client - - traefik.http.routers.gameovergne-ps.middlewares=gameovergne-client-stripprefix + # Proxy Presta via /gameovergne/ps -> même service, même StripPrefix + - traefik.http.routers.gameovergne-ps.rule=Host(`dev.vincent-guillet.fr`) && PathPrefix(`/gameovergne/ps`) + - traefik.http.routers.gameovergne-ps.entrypoints=edge + - traefik.http.routers.gameovergne-ps.service=gameovergne-client + - traefik.http.routers.gameovergne-ps.middlewares=gameovergne-client-stripprefix networks: traefik: external: true gameovergne: - driver: bridge - -volumes: - mysql-data: \ No newline at end of file + driver: bridge \ No newline at end of file