使用 Docker Compose 進行主題開發和站點構建。
成為我們的資助者或贊助商,以支持我們的工作。
你首先需要為你的主題和站點選擇適當的鏡像標籤,本文以 hugomods/hugo:exts-non-root
為例。
接著於項目根目錄下創建 docker-compose.yml
。
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yml" data-lang="yml"><span class="line"><span class="ln"> 1</span><span class="cl"><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l">mysite</span><span class="w">
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