services: rps-db: image: postgres:17-alpine container_name: rps-db restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-rpsuser} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-rpspass} POSTGRES_DB: ${POSTGRES_DB:-rpsdb} healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-rpsuser} -d ${POSTGRES_DB:-rpsdb}"] interval: 5s timeout: 5s retries: 30 volumes: - rps-db-data:/var/lib/postgresql/data ports: - "127.0.0.1:3052:5432" networks: - npm_default rps-redis: image: redis:7-alpine container_name: rps-redis restart: unless-stopped healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 30 ports: - "127.0.0.1:3053:6379" networks: - npm_default hardhat-node: build: context: . dockerfile: apps/contracts/Dockerfile.node container_name: hardhat-node restart: unless-stopped ports: - "127.0.0.1:3054:8545" networks: - npm_default rps-server: build: context: . dockerfile: apps/server/Dockerfile container_name: rps-server restart: unless-stopped environment: NODE_ENV: ${NODE_ENV:-development} DATABASE_URL: ${DATABASE_URL} REDIS_URL: ${REDIS_URL} SERVER_PORT: 3001 CORS_ORIGIN: ${CORS_ORIGIN:-https://jeu.cosmolan.fr} CONTRACT_ADDRESS: ${CONTRACT_ADDRESS} HARDHAT_RPC_URL: ${HARDHAT_RPC_URL} SEPOLIA_RPC_URL: ${SEPOLIA_RPC_URL} PRIVATE_KEY: ${PRIVATE_KEY} ports: - "127.0.0.1:3051:3001" depends_on: rps-db: condition: service_healthy rps-redis: condition: service_healthy networks: - npm_default rps-web: build: context: . dockerfile: apps/web/Dockerfile args: NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-https://api.jeu.cosmolan.fr} NEXT_PUBLIC_CONTRACT_ADDRESS: ${NEXT_PUBLIC_CONTRACT_ADDRESS} NEXT_PUBLIC_CHAIN_ID: ${NEXT_PUBLIC_CHAIN_ID:-31337} NEXT_PUBLIC_HARDHAT_RPC_URL: ${NEXT_PUBLIC_HARDHAT_RPC_URL} container_name: rps-web restart: unless-stopped environment: NODE_ENV: ${NODE_ENV:-production} NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-https://api.jeu.cosmolan.fr} NEXT_PUBLIC_CONTRACT_ADDRESS: ${NEXT_PUBLIC_CONTRACT_ADDRESS} NEXT_PUBLIC_CHAIN_ID: ${NEXT_PUBLIC_CHAIN_ID:-31337} NEXT_PUBLIC_HARDHAT_RPC_URL: ${NEXT_PUBLIC_HARDHAT_RPC_URL} ports: - "127.0.0.1:3050:3000" depends_on: - rps-server networks: - npm_default volumes: rps-db-data: networks: npm_default: external: true