From 653ce83c334558df77ae89104c71df14b3e45dba Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Fri, 5 Dec 2025 12:54:08 +0000 Subject: [PATCH] Add docker-compose.dev.yml --- docker-compose.dev.yml | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 docker-compose.dev.yml diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..220305b --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,86 @@ +# docker-compose.dev.yml +services: + mysql: + image: mysql:8.4 + container_name: gameovergne-mysql + environment: + MYSQL_ROOT_PASSWORD: root + MYSQL_DATABASE: gameovergne_app + MYSQL_USER: gameovergne + MYSQL_PASSWORD: gameovergne + volumes: + - ./mysql-data:/var/lib/mysql + ports: + - "3366:3306" + networks: + - gameovergne + restart: unless-stopped + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-u", "root", "-proot"] + interval: 10s + timeout: 5s + retries: 10 + + spring: + image: registry.vincent-guillet.fr/gameovergne-api:dev-latest + container_name: gameovergne-api + depends_on: + mysql: + condition: service_healthy + environment: + SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/gameovergne_app?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC + SPRING_DATASOURCE_USERNAME: gameovergne + SPRING_DATASOURCE_PASSWORD: gameovergne + PRESTASHOP_API_KEY: 2AQPG13MJ8X117U6FJ5NGHPS93HE34AB + SERVER_PORT: 3000 + networks: + - traefik + - gameovergne + restart: unless-stopped + labels: + - traefik.enable=true + - traefik.docker.network=traefik + + - traefik.http.routers.gameovergne-api.rule=Host(`dev.vincent-guillet.fr`) && PathPrefix(`/gameovergne-api`) + - traefik.http.routers.gameovergne-api.entrypoints=edge + - traefik.http.routers.gameovergne-api.service=gameovergne-api + - traefik.http.services.gameovergne-api.loadbalancer.server.port=3000 + - 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 + + - 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 + + - 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 + + - traefik.http.middlewares.gameovergne-client-stripprefix.stripprefix.prefixes=/gameovergne + + - traefik.http.services.gameovergne-client.loadbalancer.server.port=80 + + - 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: + external: true \ No newline at end of file