[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"tags-部署":3},[4],{"id":5,"title":6,"body":7,"date":98,"description":99,"extension":100,"meta":101,"navigation":102,"path":103,"seo":104,"stem":105,"tags":106,"__hash__":108},"blog\u002Fblog\u002Fdocker-migration.md","用 Docker 让博客随时可迁移",{"type":8,"value":9,"toc":93},"minimark",[10,19,23,47,50,57,86,89],[11,12,13,14,18],"p",{},"服务器不会一直用同一台，所以部署方案的第一原则是：",[15,16,17],"strong",{},"随时能搬走","。",[20,21,22],"h2",{"id":22},"思路",[24,25,26,34,37,40],"ol",{},[27,28,29,33],"li",{},[30,31,32],"code",{},"npm run generate"," 把整站构建成静态文件",[27,35,36],{},"静态文件由 nginx 容器托管，打成一个很小的镜像",[27,38,39],{},"Caddy 容器做反向代理，负责 HTTPS 证书的自动申请和续期",[27,41,42,43,46],{},"两个容器用一个 ",[30,44,45],{},"docker-compose.yml"," 声明",[20,48,49],{"id":49},"迁移时做什么",[11,51,52,53,56],{},"新服务器上只需要三样东西：代码仓库、",[30,54,55],{},"docker compose up -d","、把域名解析切过去。",[58,59,64],"pre",{"className":60,"code":61,"language":62,"meta":63,"style":63},"language-bash shiki shiki-themes github-light","docker compose up -d\n","bash","",[30,65,66],{"__ignoreMap":63},[67,68,71,75,79,82],"span",{"class":69,"line":70},"line",1,[67,72,74],{"class":73},"s7eDp","docker",[67,76,78],{"class":77},"sYBdl"," compose",[67,80,81],{"class":77}," up",[67,83,85],{"class":84},"sYu0t"," -d\n",[11,87,88],{},"证书数据放在独立的 Docker volume 里，就算没搬过去，Caddy 也会在新机器上自动重新申请。",[90,91,92],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":63,"searchDepth":94,"depth":94,"links":95},2,[96,97],{"id":22,"depth":94,"text":22},{"id":49,"depth":94,"text":49},"2026-10-24","记录这个博客的部署思路：静态构建 + nginx + Caddy，全部装进 Docker Compose，换服务器只搬配置。","md",{},true,"\u002Fblog\u002Fdocker-migration",{"title":6,"description":99},"blog\u002Fdocker-migration",[74,107],"部署","Mhs2UIoTc8BRwptvTSWfX7-5SSEDuoOUloYSlB5zrcY",1793263167230]