跳转至

CI/CD 流程

💎 软件 分析

版本 安装方式 机器
Git 版本控制 本地安装
gitea Docker 安装
jenkins Docker 安装
镜像仓库 暂时使用华为云免费仓库
  • SWR 是 华为云免费镜像仓库。

使用华为云镜像仓库

https://console.huaweicloud.com/swr

创建组织 - china

image-20221208161452864

创建用户

组织授权用户

image-20221208162105126

按照命令客户端上传

image-20221208163358523

$ 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 ]

image-20221208180306709