构建certbot-dns-tencent并应用
用 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:
| Name | Value |
|---|---|
DOCKERHUB_USERNAME | 你的 Docker Hub 用户名 |
DOCKERHUB_TOKEN | Docker 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 通知
你直接说 编号,我一步一步带你做到「能长期用」的状态 💪