本節將介紹如何構建站點鏡像,以使用 Nginx 作為網絡服務器為 Hugo 生成的靜態文件提供服務。
成為我們的資助者或贊助商,以支持我們的工作。
我們提供了一個內置的 Nginx 鏡像 - hugomods/hugo:nginx
,其包含了一個默認配置。若其無法滿足你的需求,你完全可以創建你自己的 Nginx 鏡像,而本文將以 hugomods/hugo:nginx
舉例。
首先於站點根目錄創建 Dockerfile
文件。
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
10# Replace below build command at will.
11RUN hugo --minify --enableGitInfo
12# Set the fallback 404 page if defaultContentLanguageInSubdir is enabled,
13# please replace the `en` with your default language code.
14# RUN cp ./public/en/404.html ./public/404.html
15
16#####################################################################
17# Final Stage #
18#####################################################################
19FROM hugomods/hugo:nginx
20# Copy the generated files to keep the image as small as possible.
21COPY --from=builder /src/public /site
/src/public
)。hugomods/hugo:nginx
默認站點目錄為 /site
)。1docker build \
2 -t user/my-site:test \
3 --build-arg HUGO_BASEURL=http://localhost:8080 \
4 .
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
-t
指定鏡像名稱和標籤。--build-arg HUGO_BASEURL=http://localhost:8080
覆蓋 baseURL
。現在構建的站點可以於 http://localhost:8080/ 進行預覽。
當你對測試結果感到滿意後,就可以構建生產環境的鏡像,然後將其推送到容器倉庫,再部署到服務器、K8s 集群等。
1docker build -t user/my-site .