docker-compose-designlisted
Install: claude install-skill structure-projects/structure-agent-rules
# docker-compose 设计
> 按生态规范生成 docker-compose.yml。**统一网络 + 三件套 + 健康检查**。
## 前置条件
- 各服务 Dockerfile 已存在
- 已确定服务清单
## 执行步骤
### 第 1 步:确定服务清单
**MUST 询问用户**:
```
Q1: 包含哪些服务?
例如:
- user-service(后端)
- user-ui(前端)
- mysql
- redis
- nacos
Q2: 端口映射?
例如:
- user-service: 8080
- user-ui: 80
```
### 第 2 步:生成 docker-compose.yml
按 `wiki/_common/docker.md` 模板生成。
**骨架**:
```yaml
version: "3.8"
services:
# 后端服务
user-service:
image: registry.cn-hangzhou.aliyuncs.com/structured/user-service:1.2.0
restart: always
hostname: user-service
container_name: user-service
env_file: [.env]
deploy:
restart_policy: { condition: on-failure }
replicas: 1
networks: [structure-cloud-work]
environment:
- APP_PATH=/app/boot/app.jar
- JAVA_OPTS=-Xms256m -Xmx1024m
- PARAMS=-Dfile.encoding=UTF-8 -Dspring.profiles.active=pro -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai
healthcheck:
test: ["CMD", "/bin/sh", "/app/liveness.sh"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
ports:
- "8080:8080"
# 前端服务
user-ui:
image: registry.cn-hangzhou.aliyuncs.com/structured/user-ui:1.2.0
restart: always
hostname: user-ui
container_name: user-ui
env_file: [.env]
networks: [structure-cloud-work]
environment:
- SCHEME=https
- SERVER_HOST=api.prod.structured.cn
- SERVER_PORT=443
healthcheck: