本文描述瞭如何爲 Hugo 站點創建 Docker 鏡像,以便推送到容器註冊中心,並部署於自搭建服務器、Docker Swarm 或 k8s 集羣等。
該例子使用 Nginx 作爲 Web 服務器,爲 Hugo 生成的靜態文件提供服務。
創建 Dockerfile
並按需調整,比如回退的 404 頁面。
1###############
2# Build Stage #
3###############
4FROM hugomods/hugo:exts as builder
5# Base URL
6ARG HUGO_BASEURL=
7ENV HUGO_BASEURL=${HUGO_BASEURL}
8# Build site
9COPY . /src
10RUN hugo --minify --gc --enableGitInfo
11# Set the fallback 404 page if defaultContentLanguageInSubdir is enabled, please replace the `en` with your default language code.
12# RUN cp ./public/en/404.html ./public/404.html
13
14###############
15# Final Stage #
16###############
17FROM hugomods/hugo:nginx
18COPY --from=builder /src/public /site
1docker build \
2 -t user/my-site:test \
3 --build-arg HUGO_BASEURL=http://localhost:8080 \
4 .
1docker run -p 8080:80 user/my-site:test
現在你可以通過 https://localhost:8080
測試 Dockerfile。
1docker build -t user/my-site .