CI/CD 流程 ¶
💎 软件 分析 ¶
版本 | 安装方式 | 机器 | |
---|---|---|---|
Git 版本控制 | 本地安装 | ||
gitea | Docker 安装 | √ | |
jenkins | Docker 安装 | √ | |
镜像仓库 | 暂时使用华为云免费仓库 | √ |
- SWR 是 华为云免费镜像仓库。
使用华为云镜像仓库 ¶
https://console.huaweicloud.com/swr
创建组织 - china ¶
创建用户 ¶
组织授权用户 ¶
按照命令客户端上传 ¶
$ sudo docker tag [{镜像名称}:{版本名称}] swr.cn-east-3.myhuaweicloud.com/{组织名称}/{镜像名称}:{版本名称}
$ sudo docker push swr.cn-east-3.myhuaweicloud.com/{组织名称}/{镜像名称}:{版本名称}
获取长期登陆指令 ¶
printf "RVHVMX**" | openssl dgst -binary -sha256 -hmac "H3nPwzgZ****" | od -An -vtx1 | sed 's/[ \n]//g' | sed 'N;s/\n//'
gitea - jenkins - 镜像仓库 ¶
流程思路
流程思路 :将文件文件提交到 build 仓库 -- 当 main (master) 发生变化时 -- 触发 Jenkins 钩子 -- 将代码自动拉取至 Jenkins -- Jenkins 流水线 配合 Shell 脚本 ( 构建镜像,并上传至 镜像仓库) -- 触发部署
创建 gitea 仓库 ¶
创建 jenkins 任务 ¶
推送华为云镜像仓库 ¶
构建自定义镜像并上传 - caddy 并添加 dnspod 插件 ¶
执行以下命令,创建构建目录
[ -d /opt/caddy-build/ ] || mkdir /opt/caddy-build/
cat > /opt/caddy-build/dockerfile <<'EOF'
FROM caddy:2.6.2-builder AS builder
RUN xcaddy build \
--with github.com/caddyserver/nginx-adapter \
--with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0 \
--with github.com/caddy-dns/dnspod
FROM caddy:2.6.2
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
EOF
- 构建镜像
docker build -t caddy:v2.6.2 .
-
登录、打 tag、上传
docker login -u <区域>@
-p <计算出来的密钥> swr.<区域>.myhuaweicloud.com docker tag caddy:v2.6.2 swr.cn-east-3.myhuaweicloud.com/china/caddy:v2.6.2
docker push swr.cn-east-3.myhuaweicloud.com/china/caddy:v2.6.2
-
查看界面进行 [ Pull / Push ]