ops: add production compose with DB_SYNC disabled and env template
This commit is contained in:
23
.env.prod.example
Normal file
23
.env.prod.example
Normal file
@@ -0,0 +1,23 @@
|
||||
# ---------- MySQL Center ----------
|
||||
MYSQL_CENTER_ROOT_PASSWORD=change-me-center-root
|
||||
MYSQL_CENTER_DATABASE=fabric_center
|
||||
MYSQL_CENTER_USER=fabric
|
||||
MYSQL_CENTER_PASSWORD=change-me-center-db
|
||||
|
||||
# ---------- MySQL Guild ----------
|
||||
MYSQL_GUILD_ROOT_PASSWORD=change-me-guild-root
|
||||
MYSQL_GUILD_DATABASE=fabric_guild
|
||||
MYSQL_GUILD_USER=fabric
|
||||
MYSQL_GUILD_PASSWORD=change-me-guild-db
|
||||
|
||||
# ---------- Center secrets ----------
|
||||
CENTER_SHARED_SECRET=change-me-center-shared-secret
|
||||
JWT_ACCESS_SECRET=change-me-jwt-access-secret
|
||||
JWT_REFRESH_SECRET=change-me-jwt-refresh-secret
|
||||
|
||||
# ---------- Guild auth ----------
|
||||
FABRIC_API_KEY=change-me-fabric-api-key
|
||||
|
||||
# ---------- Optional webhook ----------
|
||||
FABRIC_WEBHOOK_URL=
|
||||
FABRIC_WEBHOOK_SECRET=
|
||||
90
docker-compose.prod.yml
Normal file
90
docker-compose.prod.yml
Normal file
@@ -0,0 +1,90 @@
|
||||
services:
|
||||
mysql-center:
|
||||
image: mysql:8.4
|
||||
container_name: fabric-mysql-center
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_CENTER_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_CENTER_DATABASE:-fabric_center}
|
||||
MYSQL_USER: ${MYSQL_CENTER_USER:-fabric}
|
||||
MYSQL_PASSWORD: ${MYSQL_CENTER_PASSWORD}
|
||||
ports:
|
||||
- "3307:3306"
|
||||
volumes:
|
||||
- mysql_center_data:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-p${MYSQL_CENTER_ROOT_PASSWORD}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
|
||||
mysql-guild:
|
||||
image: mysql:8.4
|
||||
container_name: fabric-mysql-guild
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_GUILD_ROOT_PASSWORD}
|
||||
MYSQL_DATABASE: ${MYSQL_GUILD_DATABASE:-fabric_guild}
|
||||
MYSQL_USER: ${MYSQL_GUILD_USER:-fabric}
|
||||
MYSQL_PASSWORD: ${MYSQL_GUILD_PASSWORD}
|
||||
ports:
|
||||
- "3308:3306"
|
||||
volumes:
|
||||
- mysql_guild_data:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-p${MYSQL_GUILD_ROOT_PASSWORD}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
|
||||
backend-center:
|
||||
build:
|
||||
context: ./Fabric.Backend.Center
|
||||
dockerfile: Dockerfile
|
||||
container_name: fabric-backend-center
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
mysql-center:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
PORT: 7001
|
||||
DB_HOST: mysql-center
|
||||
DB_PORT: 3306
|
||||
DB_USER: ${MYSQL_CENTER_USER:-fabric}
|
||||
DB_PASSWORD: ${MYSQL_CENTER_PASSWORD}
|
||||
DB_NAME: ${MYSQL_CENTER_DATABASE:-fabric_center}
|
||||
DB_SYNC: "false"
|
||||
DB_LOGGING: "false"
|
||||
CENTER_SHARED_SECRET: ${CENTER_SHARED_SECRET}
|
||||
JWT_ACCESS_SECRET: ${JWT_ACCESS_SECRET}
|
||||
JWT_REFRESH_SECRET: ${JWT_REFRESH_SECRET}
|
||||
ports:
|
||||
- "7001:7001"
|
||||
|
||||
backend-guild:
|
||||
build:
|
||||
context: ./Fabric.Backend.Guild
|
||||
dockerfile: Dockerfile
|
||||
container_name: fabric-backend-guild
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
mysql-guild:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
PORT: 7002
|
||||
DB_HOST: mysql-guild
|
||||
DB_PORT: 3306
|
||||
DB_USER: ${MYSQL_GUILD_USER:-fabric}
|
||||
DB_PASSWORD: ${MYSQL_GUILD_PASSWORD}
|
||||
DB_NAME: ${MYSQL_GUILD_DATABASE:-fabric_guild}
|
||||
DB_SYNC: "false"
|
||||
DB_LOGGING: "false"
|
||||
FABRIC_API_KEY: ${FABRIC_API_KEY}
|
||||
FABRIC_WEBHOOK_URL: ${FABRIC_WEBHOOK_URL:-}
|
||||
FABRIC_WEBHOOK_SECRET: ${FABRIC_WEBHOOK_SECRET:-}
|
||||
ports:
|
||||
- "7002:7002"
|
||||
|
||||
volumes:
|
||||
mysql_center_data:
|
||||
mysql_guild_data:
|
||||
@@ -93,7 +93,7 @@
|
||||
---
|
||||
|
||||
## 6. 部署与运维
|
||||
- [ ] `docker-compose.prod.yml`(去掉 `DB_SYNC=true`)
|
||||
- [x] `docker-compose.prod.yml`(去掉 `DB_SYNC=true`)
|
||||
- [ ] DB migration 机制(TypeORM migration)
|
||||
- [ ] 结构化日志 + request id
|
||||
- [ ] 基础监控指标(QPS、延迟、错误率)
|
||||
|
||||
Reference in New Issue
Block a user