2.0 KiB
2.0 KiB
CI/CD 通过 Gitea Actions + Runner 容器化部署
概览
- 构建方式:采用 Docker Multi-stage 构建。第一阶段使用 Maven 镜像编译代码,第二阶段使用 JRE 镜像运行,产出极简镜像。
- 流程文件:
.gitea/workflows/ci-deploy.yml。 - 依赖:依赖
actions/checkout(Gitea 内置或兼容) 以及 Docker 环境。
前置准备
1. Runner 环境
在部署目标服务器上安装 gitea-runner 并注册。
- Labels: 确保 Runner 包含标签
xw-runner(或修改 workflow 文件中的runs-on字段)。 - Docker: 宿主机需安装 Docker,且 Runner 用户有权限执行
docker命令。
2. Secrets 配置 (Gitea 仓库设置 -> Secrets)
请配置以下 Secrets 以支持镜像推送:
| Secret Key | 说明 | 示例 |
|---|---|---|
REGISTRY_URL |
(必填) 镜像仓库地址 | 192.168.1.10:5000 或 docker.io |
REGISTRY_USERNAME |
(可选) 镜像仓库用户名 | admin |
REGISTRY_PASSWORD |
(可选) 镜像仓库密码 | my-secret-password |
IMAGE_NAME |
(可选) 镜像名称空间/名 | hua/jt808-server (默认为 jt808-server) |
注意:如果使用的是 HTTP 的私有仓库,请确保 Runner 的
/etc/docker/daemon.json中配置了insecure-registries。
工作流详解
- Check out: 拉取最新代码。
- Login: 登录 Docker Registry。
- Build & Push:
- 执行
docker build,自动在容器内完成mvn package和镜像打包。 - 执行
docker push推送到配置的仓库。
- 执行
- Deploy:
- 停止旧容器
jt808-server。 - 启动新容器,映射端口
8080(Web) 和20048(TCP)。
- 停止旧容器
常见问题
- actions/checkout 失败: 如果 Runner 无法访问外网 GitHub,请确保 Gitea 实例已配置 Action 镜像,或手动修改 workflow 使用 git 命令。
- Maven 构建慢: Docker 构建缓存会加速后续构建。首次构建需要下载 Maven 依赖,耗时较长。