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 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 networks: - gameovergne - traefik restart: unless-stopped labels: - traefik.enable=true - traefik.docker.network=traefik # API sous /gameovergne-api - 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 # FRONT sous /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.service=gameovergne-client - traefik.http.services.gameovergne-client.loadbalancer.server.port=80 - traefik.http.routers.gameovergne-client.middlewares=gameovergne-slash,gameovergne-client-stripprefix - traefik.http.middlewares.gameovergne-slash.redirectregex.regex=^(.*/gameovergne)$$ - traefik.http.middlewares.gameovergne-slash.redirectregex.replacement=$$1/ - traefik.http.middlewares.gameovergne-slash.redirectregex.permanent=true - traefik.http.middlewares.gameovergne-client-stripprefix.stripprefix.prefixes=/gameovergne # NOUVEAU : proxy Presta via /ps - traefik.http.routers.gameovergne-ps.rule=Host(`dev.vincent-guillet.fr`) && PathPrefix(`/ps`) - traefik.http.routers.gameovergne-ps.entrypoints=edge - traefik.http.routers.gameovergne-ps.service=gameovergne-client - traefik.http.services.gameovergne-client.loadbalancer.server.port=80 networks: traefik: external: true gameovergne: driver: bridge volumes: mysql-data: