<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Docker on 凱凱的個人網誌</title><link>https://lalio.dpdns.org/tags/docker/</link><description>Recent content in Docker on 凱凱的個人網誌</description><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Mon, 18 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://lalio.dpdns.org/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>在 Ubuntu LXC 用 Docker 部署 Hugo 個人網誌</title><link>https://lalio.dpdns.org/posts/setup-hugo-lxc-docker/</link><pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate><guid>https://lalio.dpdns.org/posts/setup-hugo-lxc-docker/</guid><description>&lt;h2 id="前言">前言&lt;/h2>
&lt;p>最近想把學習過程和筆記整理成網誌，選擇了 Hugo 這個 static site generator。因為運行環境是 Proxmox VE 上的 Ubuntu LXC（無特權容器），有一些需要注意的地方。這篇文章完整記錄從零開始部署 Hugo + PaperMod 主題到 Cloudflare Pages 的全过程。&lt;/p>
&lt;h2 id="環境準備">環境準備&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>作業系統&lt;/strong>：Proxmox VE 上的 Ubuntu 24.04 LXC（無特權容器）&lt;/li>
&lt;li>&lt;strong>容器技術&lt;/strong>：Docker&lt;/li>
&lt;li>&lt;strong>Hugo 版本&lt;/strong>：使用 &lt;code>hugomods/hugo:exts&lt;/code> Docker 映像檔（內含最新版 Hugo Extended）&lt;/li>
&lt;li>&lt;strong>部署平台&lt;/strong>：Cloudflare Pages（免費方案）&lt;/li>
&lt;/ul>
&lt;h2 id="為什麼要用-docker">為什麼要用 Docker？&lt;/h2>
&lt;p>Hugo 的安裝方式很多，有 apt 安裝、go install、官方安裝腳本等。但這裡我選擇用 Docker 的原因很簡單：&lt;/p>
&lt;ol>
&lt;li>&lt;strong>版本隔離&lt;/strong>：不需要在宿主機安裝 Hugo，不會跟其他套件衝突&lt;/li>
&lt;li>&lt;strong>隨時更新&lt;/strong>：只要拉最新的 Docker 映像檔，就是最新版 Hugo&lt;/li>
&lt;li>&lt;strong>一致性&lt;/strong>：本地開發和雲端部署使用相同環境，減少版本差異問題&lt;/li>
&lt;/ol>
&lt;p>而且這個專案用的 &lt;code>hugomods/hugo:exts&lt;/code> 映像檔內建的是 &lt;strong>Hugo Extended&lt;/strong> 版本，支援 SCSS/SASS 編譯——PaperMod 主題需要這個功能。&lt;/p>
&lt;h2 id="第一步建立-hugo-網站">第一步：建立 Hugo 網站&lt;/h2>
&lt;p>在 LXC 環境中，因為是無特權容器，sysctl 權限有限，Docker 的 bridge 網路常常建立失敗。所以所有 &lt;code>docker run&lt;/code> 指令都要加上 &lt;code>--network host&lt;/code>。&lt;/p></description></item></channel></rss>