proj-deploy
Installation
SKILL.md
部署配置
任务文档同步
- 确认全流程任务文档存在(如有)
- 将部署相关文件路径记录到“扩展产物”
- 上下文快照记录部署环境与关键约束
- 更新下一步指令为“部署验证/回归测试”
部署架构
┌─────────────┐
│ Nginx │ :80/:443
└──────┬──────┘
┌───────────────┼───────────────┐
┌──────▼──────┐ ┌──────▼──────┐
│ app-admin │ │ app-api │
│ :9501 │ │ :9502 │
└──────┬──────┘ └──────┬──────┘
└───────┬───────┘
┌──────────────┼──────────────┐
┌───▼───┐ ┌─────▼─────┐
│ MySQL │ │ Redis │
│ :3306 │ │ :6379 │
└───────┘ └───────────┘
目录结构
docker/
├── docker-compose.yml
├── .env
├── .env.template
├── app/
│ └── Dockerfile
├── nginx/
│ ├── nginx.conf
│ └── conf.d/
│ └── default.conf
└── scripts/
└── deploy.sh
环境变量模板 (.env.template)
PROJECT_NAME=myproject
COMPOSE_PROJECT_NAME=myproject
APP_ADMIN_PORT=9501
APP_API_PORT=9502
SPRING_PROFILES_ACTIVE=prod
JAVA_OPTS=-Xms512m -Xmx1g -XX:+UseG1GC
MYSQL_HOST=mysql
MYSQL_PORT=3306
MYSQL_DATABASE=myproject
MYSQL_ROOT_PASSWORD=change_me
MYSQL_USER=app_user
MYSQL_PASSWORD=change_me
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=change_me
JWT_SECRET=change_me_at_least_32_chars
TZ=Asia/Shanghai
Dockerfile
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
RUN apk add --no-cache tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
HEALTHCHECK \
CMD wget -q --spider http://localhost:${SERVER_PORT:-8080}/actuator/health || exit 1
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar app.jar"]
Nginx 配置
upstream admin-server {
server app-admin:9501;
}
upstream api-server {
server app-api:9502;
}
server {
listen 80;
server_name localhost;
location /{project}/web/ {
proxy_pass http://admin-server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /{project}/api/ {
proxy_pass http://api-server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
常用命令
# 启动
docker-compose up -d
# 停止
docker-compose down
# 查看日志
docker-compose logs -f app-admin
# 重启
docker-compose restart app-admin
# 重新构建
docker-compose up -d --build
注意事项
- 敏感信息 -
.env文件不要提交到 Git - 端口冲突 - 确保端口未被占用
- 数据持久化 - 使用 volume 持久化数据
- 健康检查 - 配置合理的健康检查
- 任务文档同步 - 记录部署产物路径与验证状态
Related skills
More from zhangloveyan/backend-skill
proj-analyze-design
技术方案设计与确认(阶段二)。基于已确认的需求,设计数据库、接口、代码结构,生成技术方案文档。
10proj-review
代码审查检查清单和流程。用于代码提交前的自检、PR审查、代码质量检查。
9proj-gen
代码生成统一入口。生成 SQL、CRUD、API、枚举等代码。
8proj-fix
快速定位和修复Bug,简化流程。用于线上/测试环境发现Bug、功能异常需要修复。
8proj-gen-test
生成单元测试和集成测试代码。用于为Service层生成测试、为Controller层生成测试、提高测试覆盖率。
8proj-common
查看公共类规范和使用方式。包括R响应类、ErrorCode错误码、异常处理、事务、缓存、并发控制、日志等。
8