构建certbot-dns-aliyun

1,配置Dockerfile文件
root登录ubuntu的终端
某个目录新建文件夹

# 创建文件夹
mkdir certbot-dns-aliyun
# 进入文件夹内
cd certbot-dns-aliyun

创建Dockerfile文件

nano Dockerfile

拷贝下边内容进Dockerfile

FROM certbot/certbot:v2.11.0

# 安装构建依赖
RUN apk add --no-cache \
    python3 \
    py3-pip \
    gcc \
    musl-dev \
    libffi-dev \
    openssl-dev

# 安装 certbot-dns-aliyun
RUN pip install --no-cache-dir certbot-dns-aliyun

# 验证插件是否安装成功(构建时检查)
RUN certbot plugins

说明:
v2.11.0:稳定,插件兼容性好
2,构建镜像

docker build -t camel52zhang/certbot-dns-aliyun:latest .

验证版本(可以不验证)

docker run --rm camel52zhang/certbot-dns-aliyun:latest certbot --version

应该看到类似:

certbot 2.11.0

验证插件是否成功加载

docker run --rm camel52zhang/certbot-dns-aliyun:latest plugins

应该能看到类似:

* dns-aliyun

看到这个就 100% 成功 了。
3,推送到 Docker Hub
先加标签

docker tag camel52zhang/certbot-dns-aliyun:latest camel52zhang/certbot-dns-aliyun:v2.11.0
GitHub Actions 自动构建(进阶)
git push

Docker Hub 自动更新镜像。

登录 Docker Hub

docker login -u camel52zhang
# token
dckr_pat_BN6iovtl123456789_123456789

推送

docker push camel52zhang/certbot-dns-aliyun:latest
docker push camel52zhang/certbot-dns-aliyun:v2.11.0
latest(随你更新)
v2.11.0(稳定可回滚)

完成后,你在 Docker Hub 就能看到:

https://hub.docker.com/r/camel52zhang/certbot-dns-aliyun

应用certbot-dns-aliyun

在项目目录创建文件夹

# 创建文件夹certbot和certbot/letsencrypt
mkdir certbot
cd certbot
mkdir letsencrypt
# 创建文件credentials.ini
nano credentials.ini
# 粘贴下边内容进文件内(注意添你的AccessKeyID和你的AccessKeySecret):
dns_aliyun_access_key = 你的AccessKeyID
dns_aliyun_access_key_secret = 你的AccessKeySecret

文件credentials.ini授权

chmod 600 credentials.ini

回到项目跟目录(certbot同级目录)创建docker-compose.yml

services:
  certbot:
    image: camel52zhang/certbot-dns-aliyun:latest
    container_name: camelznav-certbot
    volumes:
      - ./certbot/letsencrypt:/etc/letsencrypt
      - ./certbot/credentials.ini:/etc/letsencrypt/aliyun.ini:ro
    command: >
      certonly
      --authenticator dns-aliyun
      --dns-aliyun-credentials /etc/letsencrypt/aliyun.ini
      --dns-aliyun-propagation-seconds 30
      -d yourdomain.com
      --email youremail@qq.com
      --agree-tos
      --non-interactive

搭配Nginx使用

搭配我的项目camelznav-frontend和camelznav-backend。

标签: none

添加新评论

🔝