Docker 多階段構建示例 + Docker Hexo
多階段構建 (multi-stage build) ,如可使用 `alpine` ,再 `apk add` 一些相關編譯包進行編譯,最後縮小鏡像 。使用 Hexo 作為示例 前期準備 拉取 hexo source/_post 的分支 hexo 分支為 hexo markdown 源碼分支 git pull origin hexo 1 2 3 4 mkdir -p ~/hexo/source cd ~/hexo/source git init git pull https://github.com/yanzhe919/yanzhe919.github.io.git hexo:hexo 順便解釋一下, git pull origin hexo 相當於 git fetch origin hexo + git checkout -b hexo origin/hexo cd ~/hexo ,以下操作都在 ~/hexo 下執行 以前正常使用 Dockerfile ,如 node:lts 編輯並創建 Dockerfile , vim Dockerfile_lts vim Dockerfile_lts 1 2 3 4 5 6 7 FROM node:lts as build LABEL maintainer= "yan zhe < [email protected] >" WORKDIR /hexo VOLUME [ "/hexo" ] RUN npm install hexo-cli -g EXPOSE 4000 CMD [] 構建鏡像 docker build -t hexo-blog:0.0.1 -f ~/hexo/Dockerfile_lts . 鏡像大概 933MB 安裝插件, package.json docker run -it --rm -v ~/hexo/source:/hexo hexo-blog:0.0.1 sh -c "cd /hexo;npm install" 有些插件可能需要從源碼編譯,但是 lts 版本帶了很多編譯工具 測試,生成並顯示頁麵 docker run -it --rm -p 80:4000 -v ~/...