Files
ttstd-infinite-canvas/docker-compose.deploy.yml

90 lines
3.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
services:
postgres:
image: postgres:17-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-open_ai_canvas}
POSTGRES_USER: ${POSTGRES_USER:-open_ai_canvas}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?请先运行一键部署脚本生成数据库密码}
volumes:
- ${CANVAS_POSTGRES_DATA_PATH:-postgres-data}:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 10
restart: unless-stopped
redis:
image: redis:7.4-alpine
command: ["redis-server", "--appendonly", "yes", "--appendfsync", "everysec"]
volumes:
- ${CANVAS_REDIS_DATA_PATH:-redis-data}:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 10
restart: unless-stopped
migrate:
image: ${CANVAS_BACKEND_IMAGE:?请先配置 CANVAS_BACKEND_IMAGE(必须包含镜像 digest)}
command: ["migrate-schema", "up"]
environment:
CANVAS_BACKEND_DATA_DIR: /data
CANVAS_DATABASE_DRIVER: postgres
DATABASE_URL: ${DATABASE_URL:?请先运行一键部署脚本生成数据库连接}
depends_on:
postgres:
condition: service_healthy
backend:
image: ${CANVAS_BACKEND_IMAGE:?请先配置 CANVAS_BACKEND_IMAGE(必须包含镜像 digest)}
environment:
CANVAS_BACKEND_ADDR: ":8080"
CANVAS_BACKEND_DATA_DIR: /data
CANVAS_AUTO_MIGRATE: "false"
CANVAS_SHUTDOWN_TIMEOUT: ${CANVAS_SHUTDOWN_TIMEOUT:-10m}
CANVAS_DATABASE_DRIVER: postgres
DATABASE_URL: ${DATABASE_URL:?请先运行一键部署脚本生成数据库连接}
REDIS_URL: redis://redis:6379/0
CANVAS_WORKER_CONCURRENCY: ${CANVAS_WORKER_CONCURRENCY:-3}
CANVAS_CHANNEL_CONCURRENCY: ${CANVAS_CHANNEL_CONCURRENCY:-3}
CANVAS_REGISTRATION_ENABLED: ${CANVAS_REGISTRATION_ENABLED:-false}
CANVAS_ALLOW_PRIVATE_UPSTREAMS: ${CANVAS_ALLOW_PRIVATE_UPSTREAMS:-false}
CANVAS_ALLOWED_PRIVATE_UPSTREAM_HOSTS: ${CANVAS_ALLOWED_PRIVATE_UPSTREAM_HOSTS:-}
CANVAS_CORS_ORIGINS: ${CANVAS_CORS_ORIGINS:-}
CANVAS_PUBLIC_BASE_URL: ${CANVAS_PUBLIC_BASE_URL:-}
CANVAS_UPDATER_SOCKET: /run/open-ai-canvas-updater/updater.sock
CANVAS_UPDATER_TOKEN: ${CANVAS_UPDATER_TOKEN:-}
GIN_MODE: release
volumes:
- ${CANVAS_DATA_PATH:-backend-data}:/data
- ${CANVAS_UPDATER_SOCKET_DIR:-/run/open-ai-canvas-updater}:/run/open-ai-canvas-updater
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
migrate:
condition: service_completed_successfully
restart: unless-stopped
stop_grace_period: ${CANVAS_SHUTDOWN_TIMEOUT:-10m}
web:
image: ${CANVAS_WEB_IMAGE:?请先配置 CANVAS_WEB_IMAGE(必须包含镜像 digest)}
ports:
- "${CANVAS_HTTP_PORT:-3000}:3000"
volumes:
# Keep hashed chunks from the current and previous web releases for old tabs.
- ${CANVAS_WEB_DATA_PATH:-web-data}:/usr/share/nginx/html
depends_on:
backend:
condition: service_healthy
restart: unless-stopped
volumes:
backend-data:
postgres-data:
redis-data:
web-data: