feat(deploy): 接入全自动生产发布校验

This commit is contained in:
Script Generator
2026-07-06 14:45:44 +08:00
parent 8d61bb7c13
commit dc780e4c7d
24 changed files with 662 additions and 3 deletions

View File

@@ -29,12 +29,20 @@ services:
retries: 10
server:
image: ${SERVER_IMAGE:?Set SERVER_IMAGE in .env.production}
build:
context: .
dockerfile: Dockerfile.server
args:
APP_VERSION: ${APP_VERSION:-unknown}
APP_BUILD_TIME: ${APP_BUILD_TIME:-}
APP_IMAGE_TAG: ${SERVER_IMAGE:-}
restart: unless-stopped
environment:
NODE_ENV: production
APP_VERSION: ${APP_VERSION:-unknown}
APP_BUILD_TIME: ${APP_BUILD_TIME:-}
APP_IMAGE_TAG: ${SERVER_IMAGE:-}
DATABASE_URL: ${DATABASE_URL:-postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-ftb_pm}}
REDIS_URL: ${REDIS_URL:-redis://redis:6379}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
@@ -55,7 +63,7 @@ services:
test:
[
'CMD-SHELL',
'node -e "fetch(''http://127.0.0.1:3001/api/v1/config/ai'').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"',
'node -e "fetch(''http://127.0.0.1:3001/api/v1/health/version'').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"',
]
interval: 15s
timeout: 5s
@@ -63,17 +71,24 @@ services:
start_period: 20s
web:
image: ${WEB_IMAGE:?Set WEB_IMAGE in .env.production}
build:
context: .
dockerfile: Dockerfile.web
args:
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-/api/v1}
NEXT_API_PROXY_TARGET: ${NEXT_API_PROXY_TARGET:-http://server:3001}
APP_VERSION: ${APP_VERSION:-unknown}
APP_BUILD_TIME: ${APP_BUILD_TIME:-}
APP_IMAGE_TAG: ${WEB_IMAGE:-}
restart: unless-stopped
environment:
NODE_ENV: production
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-/api/v1}
NEXT_API_PROXY_TARGET: ${NEXT_API_PROXY_TARGET:-http://server:3001}
NEXT_PUBLIC_APP_VERSION: ${APP_VERSION:-unknown}
NEXT_PUBLIC_APP_BUILD_TIME: ${APP_BUILD_TIME:-}
NEXT_PUBLIC_APP_IMAGE_TAG: ${WEB_IMAGE:-}
NEXTAUTH_URL: ${NEXTAUTH_URL:-}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:-}
depends_on: