使用 Docker Compose 进行主题开发和站点构建。
成为我们的资助者或赞助商,以支持我们的工作。
你首先需要为你的主题和站点选择适当的镜像标签,本文以 hugomods/hugo:exts-non-root 为例。
接着于项目根目录下创建 docker-compose.yml。
 1name: mysite
 2
 3services:
 4  server:
 5    image: hugomods/hugo:exts-non-root
 6    command: server -D
 7    volumes:
 8      - ./:/src
 9      - ~/hugo_cache:/tmp/hugo_cache
10    ports:
11      - 1313:1313
请注意当使用 hugo server 时 --bind 0.0.0.0 是必须的,否则 Hugo 服务器可能无法接收任何来自宿主机的请求。
自 0.136.2 起,server 和 hugo server 均默认绑定 0.0.0.0。
自 0.128.0,server 可作为 hugo server 的别名使用,其默认绑定 0.0.0.0。
-v ./:/src 将当前目录挂载到容器的默认工作目录(/src)。-v ~/hugo_cache:/tmp/hugo_cache 将 $HOME/hugo_cache 挂载到默认的 cacheDir(/tmp/hugo_cache)以提高构建性能。若你的站点和主题并不需要安装依赖,则跳过。
你或许需要在启动 Hugo 服务器前安装依赖,比如通过 NPM 安装依赖。
1docker compose run server npm i
npm i 是 npm install 的快捷方式,其替换了 server 服务的默认命令。1docker compose up server
1docker compose run server /bin/sh