使用 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