「折腾」Docker 部署 Caddy

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq

除了本站所在的机子外,还另外有两台半 VPS,那半台因为是 NAT 在写本文时仍然在吃灰,剩下两台姑且按侧重承担了些任务;

所以上边涉及总共四家 IDC,这里会随机给出它们的推广链接:

RackNerdVPS - 偶尔会有年付 10 刀的机子

主博客用的 Z-BlogPHP,新文章是写 Markdown 发到 GitHub 再走 API 发布的,使用的 meta 结构和 hexo 基本一样,所以也可以简单用 hexo 生成一个静态站,虽然也可以托管 GitHub Pages 上,只是一来和常规更新方式不一样,二来又有额外的 VPS 可以用,就选择了自己搭建;

使用的域名是 blog.wdssmq.com,然后相应的两个 Git 仓库 [[md2zb]] [[hexo-blog]],用的主题 [[maupassant]],各自对应的链接见文章结尾;

将主仓库作为 submodule 添加到 hexo 仓库中,使用软连接映射文章目录到 source/_posts,这部分之前水过一篇了,链接见文章结尾;「- 另外写了个 bash 脚本定时运行实现自动拉取文章更新然后构建 public/ -」

当时选择了 Caddy 作为 Web 服务器,还可以自动申请 SSL 证书,不过直接使用感觉有些微妙,服务挂掉后重启略麻烦,所以后来在另一台机子上试了本身就是 Docker 项目的 NginxProxyManager,然而 hexo 本身还是要有个静态 web 服务,再之前那台不能装 Docker 的机子也过期扔掉了,所以打算再试下 Docker 部署 Caddy;

吐槽:先是搜索到一篇知乎文章,结果 Caddyfile 报语法错误,发现是镜像太久了,又重新找到了官方镜像;

caddyserver/caddy-docker:

https://github.com/caddyserver/caddy-docker

使用说明(#Docker Compose):

https://github.com/docker-library/docs/tree/master/caddy#docker-compose-example

下边配置基于官方示例修改:

version: "3.7"

services:
  caddy:
    container_name: caddy
    image: caddy:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./data/caddy/Caddyfile:/etc/caddy/Caddyfile
      - /root/Git/blog-hexo/public:/srv
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
    external: true
  caddy_config:

  # 需要执行命令创建 caddy_data
  # docker volume create caddy_data


caddy_config 内好像会有个 autosave.json,目测是由 Caddyfile 解析转换而来,会自动生成和更新,所以不用管它,甚至不指定挂载卷也行的感觉?

caddy_data 里边存放申请到的证书之类的,理论上不需要自己管理或备份,但是如果删除容器后再启动又要重新申请也挺浪费的,所以指定一个由 Docker 管理的卷,然后external: true 则表示相对于当前 docker-compose.yml 内的「容器组」来说它是「外部的」,简单来说就是不会因为执行 docker-compose down 而被删除;

这部分算是我对「挂载卷」部分的理解;然后像 Caddyfile/srv 这种直接指定一个具体的宿主机路径的,感觉可以用「挂载目录」来作描述上的区分,用户或其他非 Docker 程序可以更方便地直接访问和管理后者,同时又允许 Docker 容器使用;


之后只需要配置 Caddyfile 即可:

blog.wdssmq.com {
    # 重定向错误的 tag 链接
    @tags {
        path_regexp tag /tags/(?P<n1>[^/]+)_(?P<n2>[^/]+)
    }
    redir @tags /tags/{re.tag.n1}-{re.tag.n2} permanent
    # root 目录
    root * /srv
    encode zstd gzip
    file_server
}

bbs.canihave.fun {
    reverse_proxy /* 172.17.0.1:8091 {
        # header_up Host {upstream_hostport}
        header_up X-Real-IP {remote}
    }
}

----------------

「折腾」Caddy 简易入门教程_电脑网络_沉冰浮水:

https://www.wdssmq.com/post/20100604351.html


「折腾」Git Submodule 探究_电脑网络_沉冰浮水:

https://www.wdssmq.com/post/20100710361.html


wdssmq/Markdown-To-Z-Blog: 使用 GitHub Actions + Markdown 更新 Z-Blog 博客。#md2zb:

https://github.com/wdssmq/Markdown-To-Z-Blog


wdssmq/blog-hexo:

https://github.com/wdssmq/blog-hexo


wdssmq/maupassant-hexo: A simple Hexo theme forked from icylogic.:

https://github.com/wdssmq/maupassant-hexo


爱发电

本文标题:《「折腾」Docker 部署 Caddy》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/20100717821.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

不明觉历呀,但还是要评论一发。 回复
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

  • 订阅本站的 RSS 2.0 新闻聚合

搜索

本周旧文

搬家也告一段落,虽然搬过来的东西还得归置,新衣柜虽说已经散俩月味儿了,但还是不想放衣服进去。

要不我每年汇总整理一次??碎雨集_沉冰浮水_第1页

所以,不带这条的话,2024 年目前只发了 13 条嘟????

VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点,一般都是推送或拉取,今天连提交都卡了。。

又一个夏天过去了,所以今年也没买防水鞋套;然后天凉了,为了应对踢被子买了睡袋,不知道 1.2 米会不会略窄。。

《五至七时的克莱奥》,2018 年 6 月加入列表,21 年 11 月底发现 B 站上线了这部,直到前几天才看完,还是分两次看的。。接下来有五项是 2019 年的,都是电影 —— 略长的待办列表。。

有用程序自动抓取自己带 tag 的嘟,然后按年备份后从线上删除;刚发现去年的数据有备份但是没删线上??和本地数据对比后发现线上的还少一条,Why??

本质上,每个人需要的是「让自己面临的问题得到解决」的能力。。

这又涉及到直接能力和间接能力,,缺乏直接能力很正常,视情况可以通过学习来掌握直接能力,或者「请」有直接能力的人来帮自己解决。。

缺乏间接能力的情况是真没救,尤其是对「这是**我自己**面临的问题」这一前提没有明确认知的人。。

其实,在认知意义上,焦虑时我知道这种情绪对应「焦虑」这个文法词汇,此外还有「压抑」「悲伤」等等,然而「抑郁」其实是个我认知体系外的词,虽然经常一些情绪感受我找不到对应的语言词汇来表述,却也只能将其实表述为「找不到对应的语言词汇来表述」的某些感受。。

所以,我所面对的问题又可以明确向哪里寻求帮助呢?

爱发电支持者

最新留言

友情链接