这里以阿里 DNS module 为例,更多的 module 可以在这里查找

创建 Dockerfile

首先在项目文件夹中创建一个名为 Dockerfile 的文件,并使用文本编辑器打开

vim Dockerfile

编写 Dockerfile

在 Dockerfile 中插入以下代码,并保存

# 使用 caddy:builder 作为基础镜像,这个镜像包含了 Caddy 的构建工具 xcaddy
FROM caddy:builder AS builder

# 使用 xcaddy build 命令构建 Caddy,并添加阿里 DNS Module
RUN xcaddy build \
    --with github.com/caddy-dns/alidns

# 使用最新的 caddy 镜像作为基础镜像
FROM caddy:latest

# 从 builder 阶段复制构建好的 Caddy 二进制文件到当前镜像中
COPY --from=builder /usr/bin/caddy /usr/bin/caddy

构建镜像

保存并关闭 Dockerfile 文件后,运行以下命令来构建镜像:

docker build -t caddy-alidns .
  • docker build: 这是 Docker 的构建命令,用于根据 Dockerfile 构建镜像。
  • -t caddy-alidns: 这个参数指定了镜像的名称(caddy-alidns)。
  • .: 这个参数指定了 Dockerfile 所在的目录(当前目录)。

构建完成后,可以使用 docker images 查询构建出来的镜像

# docker images 
REPOSITORY     TAG       IMAGE ID       CREATED          SIZE
caddy-alidns   latest    87f034770388   19 minutes ago   131MB

运行此镜像

这里以caddy 官方文档示例

docker run -d -p 80:80 \
  -v $PWD/Caddyfile:/etc/caddy/Caddyfile \
  -v caddy_data:/data \
  caddy-alidns

参考文档

  1. caddy 官方文档
  2. caddy modules 列表
  3. caddy docker hub
Last modification:October 9, 2024
If you think my article is useful to you, please feel free to appreciate