在Mac OS下使用docker構(gòu)建基于node的博客程序hexo

截止目前為止,在docker hub上還看不到hexo 3+版本的鏡像構(gòu)建。
由于Node環(huán)境的安裝時間比較長,對于電腦比較多的人相對來說還是比較麻煩的。
基于DockerFile構(gòu)建自己的HEXO環(huán)境非常靈活,可以根據(jù)自己的情況進(jìn)行定制。
可以導(dǎo)入導(dǎo)出復(fù)制環(huán)境部署到其他電腦中。
實(shí)踐開始
docker安裝
大部分Linux,比如說Ubuntu,Debian都可以通過如下命令安裝:
curl -sSL https://get.daocloud.io/docker | sh
TIP:別忘了配置好DaoCloud加速,不然構(gòu)建速度很慢。
構(gòu)建
docker build -t hexo3 - < hexo3.dockerfile
hexo3.dockerfile 如下:
FROM node:slim
MAINTAINER Jianying Li <lijianying12@gmail.com>
# instal basic tool
RUN apt-get update && apt-get install -y git ssh-client ca-certificates --no-install-recommends && rm -r /var/lib/apt/lists/*
# set time zone
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
# install hexo
RUN npm install hexo@3.0.0 -g
# set base dir
RUN mkdir /hexo
# set home dir
WORKDIR /hexo
EXPOSE 4000
CMD ["/bin/bash"]
定制自己的image請注意,現(xiàn)在最簡潔的三個包內(nèi)容為:
git,部署的時候用(如果不用git部署請去掉)。
ssh-client(ssh方式的git部署依賴)。
ca-certificates(https方式的git部署依賴)。
TIP: 在shell中或者lib中調(diào)用https方式通訊的時候如果報錯
Problem with the SSL CA cert (path? access rights?)
可以通過安裝包:ca-certificates 來解決問題,yum apt中都是如此。
構(gòu)建時間大概十幾分鐘完成。
準(zhǔn)備把實(shí)體機(jī)(host)上的文件掛載到docker中
安裝Guest Additions, 因?yàn)橐褂肧hared Floader。
使用命令 sudo mount -t vboxsf [sharename] [dist]來掛載共享目錄。
運(yùn)行
docker run -it -d -p 4000:4000 -v /root/blog:/hexo/ --name hexo hexo3
注意路徑 /root/blog/ 是我VirtualBox 虛擬機(jī)中blog存儲的位置。
注意參數(shù)/root/blog/需要使用絕對路徑
其他的參數(shù)可以很容易的在manual中找到意義。
備份與還原
#docker save hexo3 > /root/hexo3.tar
#docker load < /root/hexo3.tar
注意這里使用save而不是export 因?yàn)樾枰4鏆v史層
參考導(dǎo)出大?。?br />
du -h /root/hexo3.tar
261M/root/hexo3.tar
從以上所有的工作中,對比虛擬機(jī)進(jìn)行環(huán)境的構(gòu)建打包,docker具有構(gòu)建環(huán)境時間更短,打包文件更小的特點(diǎn)。
使用容器操作blog
docker exec -it hexo /bin/bash
Tip: 雖然做到了用docker構(gòu)建一個非常方便移植的hexo環(huán)境,但是運(yùn)行命令hexo的時候有點(diǎn)慢,但不是那種忍受不了的慢。
小技巧
在調(diào)試的時候可以使用 docker rm $(docker ps -q -a) 一次性刪除所有的容器,docker rmi $(docker images -q) 一次性刪除所有的鏡像。
相關(guān)文章
mac怎么管理開機(jī)自啟動? 輕松應(yīng)對啟動變慢的技巧
無論是 Windows 系統(tǒng)用戶,還是 macOS 系統(tǒng)用戶,都可以通過多種方法對開機(jī)自啟動項(xiàng)進(jìn)行有效的管理,開機(jī)啟動這個叫法不準(zhǔn)確,mac系統(tǒng)應(yīng)該叫“自啟動”或則“登錄時啟動”2025-04-18macOS無效Launchpad圖標(biāo)輕松刪除的4 種實(shí)用方法
mac中不在appstore上下載的應(yīng)用經(jīng)常在刪除后它的圖標(biāo)還殘留在launchpad中,并且長按圖標(biāo)也不會出現(xiàn)刪除符號,下面解決這個問題2025-04-02令人驚艷的AI新功能! macOS Sequoia 15.4正式發(fā)布
macOS Sequoia 15.4 正式發(fā)布,帶來了令人驚艷的 AI 新功能!其中,最亮眼的是基于 AI 的「郵件」自動分類功能,詳細(xì)請看下文介紹2025-04-02macOS屏幕使用時間是什么? mac屏幕使用時間設(shè)置和關(guān)閉技巧
屏幕使用時間最初是 iPhone 和 iPad 的一個功能,現(xiàn)在mac設(shè)備也有,該怎么設(shè)置查看和關(guān)閉屏幕使用時間呢?詳細(xì)請看下文介紹2025-04-02如何關(guān)閉 Mac 觸發(fā)角功能或設(shè)置修飾鍵? mac電腦防止誤觸設(shè)置技巧
從Windows換到iOS大半年來,觸發(fā)角是我覺得值得吹爆的MacBook效率神器,成為一大說服理由,下面我們就來看看mac電腦防止誤觸設(shè)置技巧2025-03-10一鍵啟動常用功能! 一篇看懂Mac 觸發(fā)角設(shè)置指南
Mac觸發(fā)角設(shè)置技巧,讓你的操作更高效!今天我們來聊聊如何利用Mac的系統(tǒng)設(shè)置來提升你的工作效率和舒適度,其中一個非常實(shí)用的功能就是觸發(fā)角2025-03-07Mac電腦mds_store進(jìn)程占用cpu過高的三種解決辦法
當(dāng) macOS 的 mds_stores 進(jìn)程占用過高的 CPU 使用率時,可能是由于 Spotlight 索引過程導(dǎo)致的,Spotlight 是 macOS 中用于搜索和索引文件的系統(tǒng)服務(wù),而 mds_stores 是其索2025-03-07macOS Sequoia 15.3 發(fā)布:附詳細(xì)更新內(nèi)容一覽
蘋果公司最新發(fā)布的 macOS Sequoia 15.3 更新,已解決了 SuperDuper 備份工具無法創(chuàng)建可啟動備份的 BUG,下面我們就來看看這個版本帶來的具體變化2025-02-06Mac 啟動行為由你掌控! macOS 15 Sequoia禁止自動開機(jī)啟動的技巧
Mac設(shè)備在打開屏幕或連接電源時,會自動開機(jī)啟動,如果你不喜歡這種設(shè)定,想要禁止自動啟動,該怎么操作呢?我們可以使用命令實(shí)現(xiàn)2025-01-31- 經(jīng)常使用Mac電腦的用戶會發(fā)現(xiàn),找不到Mac電腦的資源庫,我們怎么打開資源庫并使用呢?下面我們就來看看macOS資源庫文件夾詳解2025-01-21