Files
vtuber/deploy/docker-compose.prod.yml

70 lines
1.5 KiB
YAML

version: "3.9"
services:
db:
image: postgres:16
container_name: vtuber-db
environment:
- POSTGRES_DB=vtuber
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=vtuber_local_pwd
volumes:
- vtuber-pg-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d vtuber"]
interval: 5s
timeout: 5s
retries: 10
restart: always
api:
build:
context: ..
dockerfile: apps/api/Dockerfile
container_name: vtuber-api
depends_on:
db:
condition: service_healthy
environment:
- NODE_ENV=production
- PORT=${API_PORT:-4000}
- DATABASE_URL=${DATABASE_URL}
ports:
- "${API_PORT:-4000}:4000"
restart: always
web:
build:
context: ..
dockerfile: apps/web/Dockerfile
container_name: vtuber-web
depends_on:
- api
environment:
- NODE_ENV=production
- NEXT_PUBLIC_API_BASE_URL=http://api:4000/api
- NEXT_PUBLIC_APP_DOMAIN=${APP_DOMAIN}
- PORT=3000
ports:
- "${WEB_PORT:-3200}:3000"
restart: always
admin:
build:
context: ..
dockerfile: apps/admin/Dockerfile
container_name: vtuber-admin
depends_on:
- api
environment:
- NODE_ENV=production
- NEXT_PUBLIC_API_BASE_URL=http://api:4000/api
- NEXT_PUBLIC_APP_DOMAIN=${APP_DOMAIN}
- PORT=3001
ports:
- "${ADMIN_PORT:-3201}:3001"
restart: always
volumes:
vtuber-pg-data: