Docker最全教程之使用Node.js搭建團(tuán)隊技術(shù)文檔站(二十三)

前言??? ? ? ? ? ??

各種編程語言均有其優(yōu)勢和生態(tài)凯楔,有興趣的朋友完全可以涉獵多門語言。在平常的工作之中,也可以嘗試選擇相對適合的編程語言來完成相關(guān)的工作蜡塌。

在團(tuán)隊技術(shù)文檔站搭建這塊蜜另,筆者嘗試了許多框架适室,最終還是選擇了Hexo,主要是由于其豐富的主題和插件举瑰,并且靈活和高度可定制化捣辆,改起來也非常方便。我們團(tuán)隊文檔站即使用Hexo來構(gòu)建此迅,并且基于容器配置了完整的代碼流水線:docs.xin-lai.com

如果對站點配置汽畴、主題、插件存在疑問耸序,可以加群溝通忍些。編程交流群<85318032> 產(chǎn)品交流群<897857351>?


?目錄

官方鏡像?

編寫一個簡單的Web服務(wù)器?

1.編碼?

2.編寫Dockerfile?

3.構(gòu)建并運行?

使用Hexo搭建團(tuán)隊技術(shù)文檔站?

1.安裝?

2.初始化?

3.配置站點信息?

4.生成靜態(tài)文件?

5.使用hexo-server進(jìn)行托管?

6.使用容器構(gòu)建和托管?


?Node.js 是一個基于 Chrome V8 引擎構(gòu)建的JavaScript運行環(huán)境,是一個讓JavaScript能夠運行在服務(wù)端的開發(fā)平臺坎怪。Node.js可以方便地搭建響應(yīng)速度快罢坝、易于擴(kuò)展的Web應(yīng)用。Node.js 使用事件驅(qū)動搅窿, 非阻塞I/O模型而得以輕量和高效炸客,非常適合在分布式設(shè)備上運行數(shù)據(jù)密集型的實時應(yīng)用。

Node.js的誕生給前端開發(fā)人員帶來了極大的驚喜戈钢,傳統(tǒng)的Web 開發(fā)者痹仙,前端使用JavaScript進(jìn)行編程,服務(wù)器端代碼得用另外一種語言殉了,比如Java开仰、.NET、PHP 等等。但是 Node.js 出現(xiàn)之后众弓,前端開發(fā)者使用JavaScript就可以前后端通吃了恩溅。


官方鏡像

官方鏡像地址:https://hub.docker.com/_/node



?編寫一個簡單的Web服務(wù)器

1.編碼

使用Node.js編寫一個簡單的Web服務(wù)器非常簡單,主要需要用到http模塊谓娃,http模塊主要用于搭建 HTTP 服務(wù)端和客戶端脚乡,全部代碼如下所示:

2.編寫Dockerfile

Dockerfile文件如下所示:

3.構(gòu)建并運行

構(gòu)建命令如下所示:

docker build --rm -f"dockerfile"-t nodetest1:latest .


運行:

docker run --rm -p4000:80nodetest1:latest

在日常開發(fā)中,一些簡單的腳本的編寫滨达,為了避免反復(fù)的構(gòu)建過程奶稠,大家同樣可以參考PHP一節(jié),然后直接運行Node.js的鏡像來執(zhí)行Node.js的腳本捡遍。

參考腳本如下所示:


使用Hexo搭建團(tuán)隊技術(shù)文檔站

Hexo 是一個快速锌订、簡潔且高效的博客(不僅僅是博客)框架,他可以使用 Markdown(或其他渲染引擎)解析文章画株,在幾秒內(nèi)辆飘,即可利用靚麗的主題生成靜態(tài)網(wǎng)頁。我們可以用其來搭建博客谓传、文檔站點或者其他官網(wǎng)蜈项。接下來,我們將使用Hexo來搭建團(tuán)隊技術(shù)文檔站续挟。之所以選擇Hexo战得,主要原因如下:

主題豐富

Hexo的主題很多,我們在官網(wǎng)就能找到很多可用的主題庸推,而且均已開源,如下所示:


插件豐富

在官網(wǎng)浇冰,我們就可以找到很多各種各樣的插件贬媒,比如搜索、字?jǐn)?shù)統(tǒng)計肘习、自動分類际乘、百度網(wǎng)址提交、靜態(tài)資源壓縮等等各種各樣的開源插件:


靈活可擴(kuò)展

無論是主題還是插件漂佩,均為開源脖含。相關(guān)主題的修改也非常簡單,您只要具備一定的JavaScript和Html的知識投蝉,就可以完成對主題和插件的修改养葵。

支持對Markdown進(jìn)行渲染

無論是搭建博客還是技術(shù)文檔站,使用Markdown進(jìn)行文章編寫都是需要優(yōu)先考慮的瘩缆。團(tuán)隊成員僅需提交Markdown关拒,就可以生成一個漂亮美觀的靜態(tài)站點,這是一件多么愜意的事情啊着绊!

接下來谐算,我們就演示如何一步一步的使用Hexo來構(gòu)建團(tuán)隊技術(shù)站點:

1.安裝

在安裝Hexo之前,我們先必須安裝好以下內(nèi)容:

Node.js(Node.js的版本不得小于6.9)

Git

接下來归露,我們僅需使用以下命令來安裝Hexo:

npm install -g hexo-cli

npm是Node.js的包管理工具洲脂,在安裝Node.js時會順帶安裝好,通過以上命令剧包,我們將使用npm全局安裝(安裝到全局目錄)hexo-cli恐锦。

2.初始化

接下來,我們可以開始使用Hexo建站了玄捕。首先我們需要進(jìn)行一些站點初始化的工作:

hexo init <folder>

目錄為選填踩蔚,不填則默認(rèn)當(dāng)前目錄。

初始化完成之后枚粘,就可以看到目標(biāo)目錄下多了很多內(nèi)容:

接下來馅闽,我們使用npm管理工具進(jìn)行安裝相關(guān)包:

npm install

3.配置站點信息

在根目錄下,我們可以找到“_config.yml”文件馍迄,通過修改該文件福也,我們可以在此配置大部分參數(shù):

具體配置信息見官網(wǎng)說明:https://hexo.io/zh-cn/docs/configuration

4.生成靜態(tài)文件

默認(rèn)情況下,Hexo進(jìn)行站點初始化時攀圈,已經(jīng)完成了默認(rèn)主題(landscape)和內(nèi)容(hello-world.md)的設(shè)置暴凑,我們可以直接執(zhí)行以下命令來生成靜態(tài)文件:

hexo generate

執(zhí)行之后,我們可以在“public”目錄看到以下靜態(tài)文件:

我們還可以使用命令“hexo deploy”來部署站點赘来,比如部署到GitHub然后使用GitHub進(jìn)行托管现喳。Hexo支持多種部署方式,具體見官網(wǎng):https://hexo.io/zh-cn/docs/deployment

5.使用hexo-server進(jìn)行托管

我們也可以使用官方組件hexo-server進(jìn)行托管我們的靜態(tài)站點犬辰,在使用之前嗦篱,我們得先進(jìn)行安裝:

npm install hexo-server –save

安裝完成后,就可以使用以下命令來啟動web服務(wù)器來進(jìn)行查看了:

hexo server -p 5000

-p參數(shù)用于指定端口幌缝,默認(rèn)端口為4000:

接下來灸促,我們就可以用瀏覽器直接打開這個地址進(jìn)行訪問了:

至此,一個簡單的靜態(tài)站點就搭建好了涵卵。我們可以配置導(dǎo)航鏈接浴栽,或者使用主題和插件來支持各種自定義的功能。例如如下所示的站點:

6.使用容器構(gòu)建和托管

初步了解Hexo之后轿偎,我們可以使用Docker來構(gòu)建和托管我們的站點典鸡。主體參考流程如下所示:

以上流程僅供參考,TeamCity的配置請參考DevOps相關(guān)章節(jié)坏晦。

Dockerfile文件如下所示:

FROM node:10.15.3-alpine

# 設(shè)置標(biāo)簽

LABEL author=雪雁 email=xinlai@xin-lai.com site=https://docs.xin-lai.com# 設(shè)置容器內(nèi)端口

EXPOSE 8000# 添加目錄

ADD . /app

# 設(shè)置當(dāng)前工作目錄

WORKDIR /app

# 復(fù)制文件

COPY . .

# 設(shè)置npm并且使用npm安裝hexo以及相關(guān)插件椿每,然后生成靜態(tài)頁并且安裝hexo-server

RUN npm config setunsafe-permtrue&& \

npm config setregistry https://registry.npm.taobao.org && \npm install -g hexo-cli && \

# hexo clean && \

cd src && \

npm install hexo --save && \

npm install hexo-neat --save && \

npm install --save hexo-wordcount && \

npm i -S hexo-prism-plugin && \

npm install hexo-generator-search --save && \

npm i hexo-permalink-pinyin --save && \

hexo generate && \

npm install hexo-server --save

# 設(shè)置工作目錄

WORKDIR src

# 使用hexo-server托管靜態(tài)文件

ENTRYPOINT ["hexo","server","-p","8000"]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伊者,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子间护,更是在濱河造成了極大的恐慌亦渗,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汁尺,死亡現(xiàn)場離奇詭異法精,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)痴突,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門搂蜓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辽装,你說我怎么就攤上這事帮碰。” “怎么了拾积?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵殉挽,是天一觀的道長。 經(jīng)常有香客問我拓巧,道長斯碌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任肛度,我火速辦了婚禮傻唾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘承耿。我一直安慰自己冠骄,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布加袋。 她就那樣靜靜地躺著凛辣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锁荔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天蝙砌,我揣著相機(jī)與錄音阳堕,去河邊找鬼。 笑死择克,一個胖子當(dāng)著我的面吹牛恬总,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肚邢,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼壹堰,長吁一口氣:“原來是場噩夢啊……” “哼拭卿!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贱纠,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤峻厚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谆焊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惠桃,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年辖试,在試婚紗的時候發(fā)現(xiàn)自己被綠了辜王。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡罐孝,死狀恐怖呐馆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情莲兢,我是刑警寧澤汹来,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站怒见,受9級特大地震影響俗慈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜遣耍,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一闺阱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舵变,春花似錦酣溃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绵咱,卻和暖如春碘饼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悲伶。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工艾恼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人麸锉。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓钠绍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親花沉。 傳聞我的和親對象是個殘疾皇子柳爽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容