79 lines
2.5 KiB
YAML
79 lines
2.5 KiB
YAML
# 官方运行时契约(变更视为运行时大版本,须写 changelog)
|
||
#
|
||
# 本地开发不使用本文件:仓库根 docker-compose.yml 只起 Postgres,
|
||
# 配合 start.bat / cd backend && go run ./cmd/jiang13 + frontend npm run dev。
|
||
# 本 Compose 不含反代:页面 :3000、API :3001 交给宿主机 Nginx / Caddy。
|
||
|
||
name: jiang13
|
||
|
||
services:
|
||
postgres:
|
||
image: postgres:17-alpine
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_USER: ${POSTGRES_USER:-jiang13}
|
||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in deploy/.env}
|
||
POSTGRES_DB: ${POSTGRES_DB:-jiang13}
|
||
volumes:
|
||
- pgdata:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-jiang13} -d ${POSTGRES_DB:-jiang13}"]
|
||
interval: 5s
|
||
timeout: 5s
|
||
retries: 5
|
||
|
||
api:
|
||
image: ${JIANG13_IMAGE_API:-jiang13-bbs-api}:${JIANG13_VERSION:-0.1.0}
|
||
build:
|
||
context: ..
|
||
dockerfile: deploy/Dockerfile.api
|
||
args:
|
||
VERSION: ${JIANG13_VERSION:-0.1.0}
|
||
COMMIT: ${JIANG13_COMMIT:-unknown}
|
||
restart: unless-stopped
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
environment:
|
||
HTTP_PORT: "3001"
|
||
DEV_MODE: "false"
|
||
JIANG13_WORK_PATH: /var/lib/jiang13
|
||
DATA_DIR: /var/lib/jiang13/data
|
||
DB_DSN: postgres://${POSTGRES_USER:-jiang13}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-jiang13}?sslmode=disable
|
||
JWT_SECRET: ${JWT_SECRET:?set JWT_SECRET in deploy/.env}
|
||
SETTINGS_MASTER_KEY: ${SETTINGS_MASTER_KEY:-}
|
||
SERVICE_PRIVATE_HOSTS: ${SERVICE_PRIVATE_HOSTS:-}
|
||
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-}
|
||
MAINTENANCE_RECOVERY: ${MAINTENANCE_RECOVERY:-0}
|
||
SITE_URL: ${SITE_URL:-https://localhost}
|
||
volumes:
|
||
- appdata:/var/lib/jiang13/data
|
||
ports:
|
||
- "${JIANG13_BIND:-127.0.0.1}:${JIANG13_API_PORT:-3001}:3001"
|
||
|
||
web:
|
||
image: ${JIANG13_IMAGE_WEB:-jiang13-bbs-web}:${JIANG13_VERSION:-0.1.0}
|
||
build:
|
||
context: ../frontend
|
||
dockerfile: ../deploy/Dockerfile.web
|
||
args:
|
||
VERSION: ${JIANG13_VERSION:-0.1.0}
|
||
BACKEND_URL: http://api:3001
|
||
restart: unless-stopped
|
||
depends_on:
|
||
api:
|
||
condition: service_healthy
|
||
environment:
|
||
BACKEND_URL: http://api:3001
|
||
SITE_URL: ${SITE_URL:-https://localhost}
|
||
NODE_ENV: production
|
||
DEV_MODE: "false"
|
||
PORT: "3000"
|
||
HOSTNAME: 0.0.0.0
|
||
ports:
|
||
- "${JIANG13_BIND:-127.0.0.1}:${JIANG13_WEB_PORT:-3000}:3000"
|
||
|
||
volumes:
|
||
pgdata:
|
||
appdata:
|