58 lines
1.6 KiB
YAML
58 lines
1.6 KiB
YAML
services:
|
|
# Next.js Application
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
ports:
|
|
- '${PORT:-3000}:3000'
|
|
environment:
|
|
NODE_ENV: production
|
|
NEXT_PUBLIC_SITE_URL: '${NEXT_PUBLIC_SITE_URL}'
|
|
NEXT_PUBLIC_CONVEX_URL: '${NEXT_PUBLIC_CONVEX_URL}'
|
|
NEXT_PUBLIC_CONVEX_SITE_URL: '${NEXT_PUBLIC_CONVEX_SITE_URL}'
|
|
CONVEX_SELF_HOSTED_URL: '${CONVEX_SELF_HOSTED_URL}'
|
|
CONVEX_SELF_HOSTED_ADMIN_KEY: '${CONVEX_SELF_HOSTED_ADMIN_KEY}'
|
|
depends_on:
|
|
- backend
|
|
|
|
# Convex Backend
|
|
backend:
|
|
image: 'ghcr.io/get-convex/convex-backend:latest'
|
|
stop_grace_period: 10s
|
|
stop_signal: SIGINT
|
|
ports:
|
|
- '${PORT:-3210}:3210'
|
|
- '${SITE_PROXY_PORT:-3211}:3211'
|
|
volumes:
|
|
- 'data:/convex/data'
|
|
environment:
|
|
INSTANCE_NAME: '${INSTANCE_NAME}'
|
|
INSTANCE_SECRET: '${INSTANCE_SECRET}'
|
|
CONVEX_CLOUD_ORIGIN: '${SERVICE_URL_BACKEND}'
|
|
CONVEX_SITE_ORIGIN: '${SERVICE_URL_BACKEND_SITE}'
|
|
DO_NOT_REQUIRE_SSL: '${DO_NOT_REQUIRE_SSL:-true}'
|
|
DATABASE_URL: '${DATABASE_URL:-}'
|
|
healthcheck:
|
|
test: ['CMD-SHELL', 'curl -f http://localhost:3210/version']
|
|
interval: 5s
|
|
start_period: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
# Convex Dashboard
|
|
dashboard:
|
|
image: 'ghcr.io/get-convex/convex-dashboard:latest'
|
|
stop_grace_period: 10s
|
|
stop_signal: SIGINT
|
|
ports:
|
|
- '${DASHBOARD_PORT:-6791}:6791'
|
|
environment:
|
|
PORT: '6791'
|
|
NEXT_PUBLIC_DEPLOYMENT_URL: '${SERVICE_URL_BACKEND}'
|
|
depends_on:
|
|
backend:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
data: null
|