caddy docker编译 并 添加 cloudflare ssl自动签发

安装docker的部分可以参照下面这个文章:

有两种方法编译,一种使用Dockerfile直接编译成镜像,另一种就是docker-compose。我个人习惯第二种,两种都记录一下

Dockerfile编译

按照官方的说法,直接创建一个Dockerfile即可。

FROM caddy:<version>-builder AS builder

RUN xcaddy build \
    --with github.com/caddyserver/nginx-adapter \
    --with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0

FROM caddy:<version>

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

这个version可以直接替换为 latest 看个人需求把。

我需要加上cloudflare的api来进行ssl的自动申请,所以要改一下:

FROM caddy:builder AS builder

RUN xcaddy build \
    --with github.com/caddy-dns/cloudflare

FROM caddy:latest

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

然后build一下:

docker build -t caddy_cloudflare .

查看下docker images里有没有他

image.png

没问题就可以run了。但是要配置部分参数,我很懒,所以不如直接用docker compose来启动,区别不大。启动参数参考后面的把

Docker Compsoe 版

build部分不变,以下是docker compose的文件,记得要跟dockerfile放在一个地方下面

services:
  caddy:
    # 如果你先build,后用docker compose。可以把下面的image留着,并改为你当时起的镜像名
    #image: caddy:<version>
    # 如果没有build,那就把image去掉用这个
    build: .
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/srv
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
  caddy_config:

最后保存即可。

注意!先不要进行docker-compose up。需要先创建好对应路径的Caddyfile!

处理完后再up即可

添加SSL配置

在Caddyfile里写入以下内容:

{
        email xxxxxxxxxxxxxxx@xxxx.com
        log error {
                output file /var/logs/caddy/error.log {
                        roll_size 20MB
                        roll_keep 5
                        roll_keep_for 240h
                }
                level ERROR
        }
        acme_dns cloudflare xxxxxxxxxxxxxxxxxxxxx
}
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容