Update docker-compose.yml

This commit is contained in:
2025-11-28 18:55:13 +00:00
parent e6efbdeafe
commit 35a5f0d755

View File

@@ -1,3 +1,5 @@
version: "3.9"
services: services:
mysql: mysql:
image: mysql:8.4 image: mysql:8.4
@@ -7,10 +9,11 @@ services:
MYSQL_DATABASE: gameovergne_app MYSQL_DATABASE: gameovergne_app
MYSQL_USER: gameovergne MYSQL_USER: gameovergne
MYSQL_PASSWORD: gameovergne MYSQL_PASSWORD: gameovergne
# 🔒 Persistant + accessible depuis l'extérieur
volumes: volumes:
- mysql-data:/var/lib/mysql - ./mysql-data:/var/lib/mysql
ports: ports:
- 3306:3306 - "3306:3306" # pour te connecter depuis ton Mac / un client SQL
networks: networks:
- gameovergne - gameovergne
restart: unless-stopped restart: unless-stopped
@@ -31,6 +34,7 @@ services:
SPRING_DATASOURCE_USERNAME: gameovergne SPRING_DATASOURCE_USERNAME: gameovergne
SPRING_DATASOURCE_PASSWORD: gameovergne SPRING_DATASOURCE_PASSWORD: gameovergne
SERVER_PORT: 3000 SERVER_PORT: 3000
# pense bien à avoir prestashop.base-url / prestashop.basic-auth dans application.properties ou via env si besoin
networks: networks:
- gameovergne - gameovergne
- traefik - traefik
@@ -47,47 +51,44 @@ services:
- traefik.http.routers.gameovergne-api.middlewares=gameovergne-api-stripprefix - traefik.http.routers.gameovergne-api.middlewares=gameovergne-api-stripprefix
- traefik.http.middlewares.gameovergne-api-stripprefix.stripprefix.prefixes=/gameovergne-api - traefik.http.middlewares.gameovergne-api-stripprefix.stripprefix.prefixes=/gameovergne-api
angular: angular:
image: registry.vincent-guillet.fr/gameovergne-client:dev-latest image: registry.vincent-guillet.fr/gameovergne-client:dev-latest
container_name: gameovergne-client container_name: gameovergne-client
depends_on: depends_on:
- spring - spring
networks: networks:
- gameovergne - gameovergne
- traefik - traefik
restart: unless-stopped restart: unless-stopped
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.docker.network=traefik - traefik.docker.network=traefik
# FRONT sous /gameovergne (avec et sans slash final) # 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.rule=Host(`dev.vincent-guillet.fr`) && (Path(`/gameovergne`) || PathPrefix(`/gameovergne/`))
- traefik.http.routers.gameovergne-client.entrypoints=edge - traefik.http.routers.gameovergne-client.entrypoints=edge
- traefik.http.routers.gameovergne-client.service=gameovergne-client - traefik.http.routers.gameovergne-client.service=gameovergne-client
- traefik.http.routers.gameovergne-client.middlewares=gameovergne-slash,gameovergne-client-stripprefix - traefik.http.routers.gameovergne-client.middlewares=gameovergne-slash,gameovergne-client-stripprefix
# Redirige /gameovergne vers /gameovergne/ # Redirige /gameovergne vers /gameovergne/
- traefik.http.middlewares.gameovergne-slash.redirectregex.regex=^https?://([^/]+)/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.replacement=https://$${1}/gameovergne/
- traefik.http.middlewares.gameovergne-slash.redirectregex.permanent=true - traefik.http.middlewares.gameovergne-slash.redirectregex.permanent=true
# Enlève /gameovergne avant d'envoyer vers Nginx # Enlève /gameovergne avant d'envoyer vers Nginx (le conteneur Angular)
- traefik.http.middlewares.gameovergne-client-stripprefix.stripprefix.prefixes=/gameovergne - traefik.http.middlewares.gameovergne-client-stripprefix.stripprefix.prefixes=/gameovergne
# Service vers Nginx (port 80 dans le conteneur) # Service vers Nginx (port 80 dans le conteneur)
- traefik.http.services.gameovergne-client.loadbalancer.server.port=80 - traefik.http.services.gameovergne-client.loadbalancer.server.port=80
# Proxy Presta via /gameovergne/ps -> même service # 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.rule=Host(`dev.vincent-guillet.fr`) && PathPrefix(`/gameovergne/ps`)
- traefik.http.routers.gameovergne-ps.entrypoints=edge - traefik.http.routers.gameovergne-ps.entrypoints=edge
- traefik.http.routers.gameovergne-ps.service=gameovergne-client - traefik.http.routers.gameovergne-ps.service=gameovergne-client
- traefik.http.routers.gameovergne-ps.middlewares=gameovergne-client-stripprefix - traefik.http.routers.gameovergne-ps.middlewares=gameovergne-client-stripprefix
networks: networks:
traefik: traefik:
external: true external: true
gameovergne: gameovergne:
driver: bridge driver: bridge
volumes:
mysql-data: