2026-09-09 22:05:00 +08:00
|
|
|
|
# Staging Docker Compose(预发环境,仅开发/测试)
|
|
|
|
|
|
version: '3.8'
|
|
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
postgres:
|
|
|
|
|
|
image: postgres:16-alpine
|
|
|
|
|
|
environment:
|
|
|
|
|
|
POSTGRES_DB: danyang_match_staging
|
|
|
|
|
|
POSTGRES_USER: staging
|
|
|
|
|
|
POSTGRES_PASSWORD: staging_dev_password_change_me
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "5433:5432"
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- postgres_staging_data:/var/lib/postgresql/data
|
|
|
|
|
|
healthcheck:
|
|
|
|
|
|
test: ["CMD-SHELL", "pg_isready -U staging -d danyang_match_staging"]
|
|
|
|
|
|
interval: 10s
|
|
|
|
|
|
timeout: 5s
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
|
|
|
|
redis:
|
|
|
|
|
|
image: redis:7-alpine
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "6380:6379"
|
|
|
|
|
|
command: redis-server --appendonly yes --requirepass staging-redis-pass-change-me
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- redis_staging_data:/data
|
|
|
|
|
|
healthcheck:
|
|
|
|
|
|
test: ["CMD", "redis-cli", "-a", "staging-redis-pass-change-me", "ping"]
|
|
|
|
|
|
interval: 10s
|
|
|
|
|
|
timeout: 5s
|
|
|
|
|
|
retries: 5
|
|
|
|
|
|
|
|
|
|
|
|
minio:
|
2026-09-22 11:04:01 +08:00
|
|
|
|
# 同 docker-compose.yml 的 minio 条目:Docker Hub 上 minio/minio 仓库已被整体移除
|
|
|
|
|
|
# (MinIO 自 2025-10 起停止发布容器镜像,仅源码分发),staging 环境同样拉不到。
|
2026-09-22 11:16:37 +08:00
|
|
|
|
# 改为仍在提供镜像的 quay.io,并钉死为与本地/CI 一致的 RELEASE.2025-09-07T16-13-09Z。
|
|
|
|
|
|
image: quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z
|
2026-09-09 22:05:00 +08:00
|
|
|
|
command: server /data --console-address ":9001"
|
|
|
|
|
|
environment:
|
|
|
|
|
|
MINIO_ROOT_USER: staging
|
|
|
|
|
|
MINIO_ROOT_PASSWORD: staging_dev_password
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "9010:9000"
|
|
|
|
|
|
- "9011:9001"
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- minio_staging_data:/data
|
|
|
|
|
|
|
|
|
|
|
|
backend:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: ../backend
|
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
|
container_name: danyang-match-staging-backend
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
postgres:
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
redis:
|
|
|
|
|
|
condition: service_healthy
|
|
|
|
|
|
environment:
|
|
|
|
|
|
SPRING_PROFILES_ACTIVE: staging
|
|
|
|
|
|
DB_HOST: postgres
|
|
|
|
|
|
DB_PORT: 5432
|
|
|
|
|
|
DB_NAME: danyang_match_staging
|
|
|
|
|
|
DB_USER: staging
|
|
|
|
|
|
DB_PASSWORD: staging_dev_password_change_me
|
|
|
|
|
|
REDIS_HOST: redis
|
|
|
|
|
|
REDIS_PORT: 6379
|
|
|
|
|
|
REDIS_PASSWORD: staging-redis-pass-change-me
|
|
|
|
|
|
MINIO_ENDPOINT: http://minio:9000
|
|
|
|
|
|
MINIO_ACCESS_KEY: staging
|
|
|
|
|
|
MINIO_SECRET_KEY: staging_dev_password
|
|
|
|
|
|
JWT_ACCESS_SECRET: staging-access-secret-dev-only
|
|
|
|
|
|
JWT_REFRESH_SECRET: staging-refresh-secret-dev-only
|
|
|
|
|
|
CHECKIN_TOKEN_SECRET: staging-checkin-secret-dev-only
|
|
|
|
|
|
ENCRYPTION_KEY: 32539f3d2fa8123dcec899cc3dbee7347034123a126ac22fcb4702e10c454d50
|
|
|
|
|
|
FEATURES_APPEAL_ENABLED: "true"
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "8081:8080"
|
|
|
|
|
|
healthcheck:
|
2026-09-18 22:27:26 +08:00
|
|
|
|
# 探针用 127.0.0.1 而非 localhost:busybox wget 解析 localhost 时可能优先取 ::1,
|
|
|
|
|
|
# 而服务若只绑 IPv4 会导致探针假失败(本地栈的 nginx 已实测踩到)。
|
|
|
|
|
|
test: ["CMD-SHELL", "curl -f http://127.0.0.1:8080/api/v1/health/ready || exit 1"]
|
2026-09-09 22:05:00 +08:00
|
|
|
|
interval: 30s
|
|
|
|
|
|
timeout: 10s
|
|
|
|
|
|
retries: 3
|
|
|
|
|
|
|
|
|
|
|
|
admin-web:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: ../admin-web
|
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
|
container_name: danyang-match-staging-admin
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
- backend
|
|
|
|
|
|
ports:
|
2026-09-18 20:51:12 +08:00
|
|
|
|
# staging 与生产同机共存,全部端口按「生产 + 1」错开(5433/6380/8081/13521)。
|
|
|
|
|
|
# 生产管理端为 13520(admin-web/vite.config.ts + docker-compose.prod.yml),
|
|
|
|
|
|
# 故此处为 13521 —— 与 tests/uat/run-uat.sh 的 UAT_ADMIN_URL 默认值一致,
|
|
|
|
|
|
# 两处均由 ui-tests/ui-document-baseline-contracts.mjs 钉住。
|
|
|
|
|
|
# 管理端构建产物部署在 /admin/ 子路径下(见 admin-web/vite.config.ts 的 base),
|
|
|
|
|
|
# 故直连访问地址为 http://localhost:13521/admin/ 。
|
|
|
|
|
|
- "13521:80"
|
2026-09-09 22:05:00 +08:00
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
postgres_staging_data:
|
|
|
|
|
|
redis_staging_data:
|
|
|
|
|
|
minio_staging_data:
|