rps-royale/docker-compose.yml
Ubuntu 1d455147ad Fix Docker builds: pnpm workspaces, OpenSSL, and Next.js standalone
- Simplify Dockerfiles to use single-stage pnpm install
- Add openssl to server Alpine image for Prisma
- Remove obsolete version from docker-compose.yml
- Fix Dockerfile.node copy paths for monorepo root context
- Add .dockerignore at monorepo root
- Create empty public dir for Next.js standalone build

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 02:48:20 +00:00

97 lines
2.4 KiB
YAML

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
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