Files

测试机 Drone CI(对接 Gogs)— 生产 Docker 打包

目标机:101.35.245.122
Gogs:http://101.35.245.122:3000
Drone UI:http://101.35.245.122:18088
产物目录:/root/zkxw-releases/

行为

  • 仅 tag 触发(普通 push 不打包;任意 tag 均可触发)
  • 交付版本固定为 v1.1.0(与现网 .env 镜像标签一致,升级不必改 ZKXW_*_IMAGE)
  • 执行 ./scripts/package-docker-deploy.sh v1.1.0
    → zkxw-backend:v1.1.0 + zkxw-web:v1.1.0 → 交付包
  • 拷贝到(同名覆盖):/root/zkxw-releases/zkxw-docker-deploy-v1.1.0.tar.gz
    (VERSION.txt 内仍有 git_commit,可区分是哪次提交打的包)

可选:将发版用 deploy/docker/.env(含微信/RSA 等注入项)放到:

/root/zkxw-releases/.deploy-docker.env

打包前会复制为仓库内 deploy/docker/.env(勿提交 git)。

1. 部署 / 更新 Runner

mkdir -p /root/drone /root/zkxw-releases
# 同步本目录 docker-compose.yml 后:
cd /root/drone
docker compose up -d
# 预拉流水线镜像(国内建议 daoCloud)
docker pull docker.m.daocloud.io/library/docker:27-cli
docker tag docker.m.daocloud.io/library/docker:27-cli docker:27-cli

云安全组放行 TCP 18088。测试机建议保留 /swap-drone(前端镜像构建吃内存)。

2. 登录与激活仓库

  1. 打开 http://101.35.245.122:18088,用 Gogs 账号登录
  2. 激活 wuzilong/zkxw
  3. Webhook:http://101.35.245.122:18088/hook

3. 发版用法

# 本地打任意 tag 并推到 Gogs(仅作触发;包内版本仍是 v1.1.0)
git tag v1.1.0-20261024   # 或 v1.1.0、release-xxx 等
git push origin v1.1.0-20261024

# 构建完成后在测试机取包(文件名固定)
ls -lh /root/zkxw-releases/zkxw-docker-deploy-v1.1.0.tar.gz

Drone UI 可看构建日志;包内结构见 deploy/docker/README.md。

4. 运维

cd /root/drone
docker compose ps
docker compose logs -f --tail=100 drone-runner
docker compose restart runner