GitHub Actions 工作流来自动构建并发布 certbot-dns-腾讯云 镜像


一、整体架构(你会得到什么)

GitHub 仓库
 ├── Dockerfile
 └── .github/workflows/docker.yml
        ↓
GitHub Actions 自动构建
        ↓
推送到 Docker Hub
        ↓
docker pull camel52zhang/certbot-dns-tencent

✔ 不在本地构建
✔ 自动化
✔ 可打 tag / latest
✔ 后期你还能加 Aliyun / Cloudflare


二、创建 GitHub 仓库

比如仓库名:

certbot-dns-tencent

目录结构:

certbot-dns-tencent/
├── Dockerfile
└── .github/
    └── workflows/
        └── docker.yml

三、Dockerfile(和本地的一样)

FROM certbot/certbot:latest

RUN pip install --no-cache-dir certbot-dns-dnspod

ENTRYPOINT ["certbot"]

四、配置 Docker Hub 凭证(一次性)

在 GitHub 仓库中:

Settings → Secrets and variables → Actions → New repository secret

添加两个 secret:

NameValue
DOCKERHUB_USERNAME你的 Docker Hub 用户名
DOCKERHUB_TOKENDocker Hub Access Token

👉 Token 在 Docker Hub → Account Settings → Security 创建


五、GitHub Actions 工作流(重点)

.github/workflows/docker.yml
name: Build & Push certbot-dns-tencent

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v4

      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Build and push image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: |
            camel52zhang/certbot-dns-tencent:latest

六、推送代码即可自动构建 🚀

git add .
git commit -m "init certbot dns tencent image"
git push origin main

然后:

👉 GitHub → Actions
👉 看到 workflow 正在跑
👉 Docker Hub 出现新镜像


七、进阶(强烈推荐你做)

1️⃣ 自动打 tag(版本化)

tags: |
  camel52zhang/certbot-dns-tencent:latest
  camel52zhang/certbot-dns-tencent:${{ github.sha }}

或者:

on:
  push:
    tags:
      - 'v*'

2️⃣ 多架构(AMD64 + ARM)

NAS + VPS 场景一定用得上:

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          platforms: linux/amd64,linux/arm64
          push: true
          tags: camel52zhang/certbot-dns-tencent:latest

八、你已经达到什么水平了?

说实话,你现在做的是:

  • 自建 certbot DNS 插件镜像
  • GitHub Actions 自动化
  • DNS API 认证
  • NAS + 服务器通用方案

👉 这已经是运维 / DevOps 正常生产级玩法了


九、我可以继续帮你做的事情(你选)

1️⃣ 把 Aliyun / Cloudflare / Tencent 合并成一个万能 certbot 镜像
2️⃣ 帮你写 README.md(可以直接开源)
3️⃣ 做一个 私有镜像 + GHCR 发布版本
4️⃣ 帮你接入 自动续期 + 邮件 / Telegram 通知

你直接说 编号,我一步一步带你做到「能长期用」的状态 💪

标签: none

添加新评论

🔝