release: freeze 2026-10-15 validated release baseline
CI/CD Pipeline / UI Contracts (source-structure gates) (push) Canceled after 0s
CI/CD Pipeline / E2E (live stack) (push) Canceled after 0s
CI/CD Pipeline / Backend Build & Test (push) Canceled after 0s
CI/CD Pipeline / Admin Web Build (push) Canceled after 0s
CI/CD Pipeline / Mini Program Compile Check (push) Canceled after 0s
CI/CD Pipeline / Migration Validation (push) Canceled after 0s
CI/CD Pipeline / Test Shell Guard (Phase 23 Gate) (push) Canceled after 0s

This commit is contained in:
WorkBuddy
2026-10-15 09:47:31 +08:00
parent 827c23db1d
commit 3c2b967274
149 changed files with 4324 additions and 348 deletions
+6 -4
View File
@@ -143,20 +143,20 @@ services:
condition: service_completed_successfully
environment:
SPRING_PROFILES_ACTIVE: docker
DB_HOST: postgres
DB_HOST: danyang-match-postgres
DB_PORT: 5432
DB_NAME: danyang_match
DB_USER: postgres
DB_PASSWORD: ${DB_PASSWORD:?请在本地 .env 设置 DB_PASSWORD}
REDIS_HOST: redis
REDIS_HOST: danyang-match-redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:?请在本地 .env 设置 REDIS_PASSWORD}
# 变量名仍沿用 MINIO_* 前缀(服务端 Bean 与 application-*.yml 都在读它),
# 但它现在指向 SeaweedFS 的 S3 网关 —— 属历史命名,待下一轮统一改名。
# 「presigned URL 的 host 必须是对外可达地址」缺陷已修复:endpoint 拆成
# 内网签发地址(MINIO_ENDPOINT=seaweedfs:8333,后端连存储)+
# 内网签发地址(MINIO_ENDPOINT=danyang-match-seaweedfs:8333,后端连存储)+
# 外网访问地址(MINIO_PUBLIC_ENDPOINT=localhost:8333,客户端直传)。
MINIO_ENDPOINT: http://seaweedfs:8333
MINIO_ENDPOINT: http://danyang-match-seaweedfs:8333
# 对内网 endpoint 拆出「对外可达」地址:客户端直传 presigned URL 用。
# 本地 S3 网关已 publish 到宿主 8333,故客户端填 localhost:8333 即可连通。
MINIO_PUBLIC_ENDPOINT: http://localhost:8333
@@ -167,6 +167,8 @@ services:
ENCRYPTION_KEY: ${ENCRYPTION_KEY:?请在本地 .env 设置 ENCRYPTION_KEY}
WECHAT_APP_ID: dev-wechat-app-id
WECHAT_APP_SECRET: ${WECHAT_APP_SECRET:-}
# 仅本地演示固定到秀英预置用户;正式环境留空并使用真实微信 Provider。
WECHAT_MOCK_OPENID: ${WECHAT_MOCK_OPENID:-demo_openid_f06}
ports:
- "8085:8080"
healthcheck:
+12 -11
View File
@@ -34,18 +34,19 @@ http {
limit_req_zone $binary_remote_addr zone=auth:10m rate=5r/s;
limit_req_zone $binary_remote_addr zone=upload:10m rate=10r/s;
upstream backend {
server backend:8080;
}
upstream admin_web {
server admin-web:80;
}
# Docker Compose 内置 DNS resolver —— 让 proxy_pass 中的主机名延迟解析(请求时才查),
# 避免 nginx 启动时 backend/admin-web 容器的 DNS 还没注册好就 [emerg] 退出。
resolver 127.0.0.11 valid=30s ipv6=off;
server {
listen 80;
server_name localhost;
# upstream 变量(必须在 server 块内,不能在 http 顶层)
# 使用固定容器名,避免后端因跨 compose 网络重连后丢失 service alias。
set $backend_upstream "http://danyang-match-backend:8080";
set $admin_upstream "http://admin-web:80";
# Health check for nginx itself
location /nginx-health {
return 200 'ok';
@@ -55,7 +56,7 @@ http {
# API proxy
location /api/ {
limit_req zone=api burst=50 nodelay;
proxy_pass http://backend;
proxy_pass $backend_upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -69,7 +70,7 @@ http {
# WebSocket proxy
location /ws/ {
proxy_pass http://backend;
proxy_pass $backend_upstream;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
@@ -83,7 +84,7 @@ http {
# Auth endpoints - stricter rate limit
location /api/v1/auth/ {
limit_req zone=auth burst=10 nodelay;
proxy_pass http://backend;
proxy_pass $backend_upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@@ -98,7 +99,7 @@ http {
return 301 /admin/;
}
location /admin/ {
proxy_pass http://admin_web;
proxy_pass $admin_upstream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;