「折腾」Docker 部署 Caddy
条评论除了本站所在的机子外,还另外有两台半 VPS,那半台因为是 NAT 在写本文时仍然在吃灰,剩下两台姑且按侧重承担了些任务;
所以上边涉及总共四家 IDC,这里会随机给出它们的推广链接:
[ShortSth:主机云,DesiVPS,RackNerdVPS,iHostART][/ShortSth]
主博客用的 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
下边配置基于官方示例修改:
1 | version: "3.7" |
↑ caddy_config
内好像会有个 autosave.json
,目测是由 Caddyfile
解析转换而来,会自动生成和更新,所以不用管它,甚至不指定挂载卷也行的感觉?
↑ caddy_data
里边存放申请到的证书之类的,理论上不需要自己管理或备份,但是如果删除容器后再启动又要重新申请也挺浪费的,所以指定一个由 Docker 管理的卷,然后external: true
则表示相对于当前 docker-compose.yml
内的「容器组」来说它是「外部的」,简单来说就是不会因为执行 docker-compose down
而被删除;
这部分算是我对「挂载卷」部分的理解;然后像 Caddyfile
和 /srv
这种直接指定一个具体的宿主机路径的,感觉可以用「挂载目录」来作描述上的区分,用户或其他非 Docker 程序可以更方便地直接访问和管理后者,同时又允许 Docker 容器使用;
之后只需要配置 Caddyfile
即可:
1 | blog.wdssmq.com { |
-—————
「折腾」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.: