各類編程語言均有其優點和生態,有興趣的朋友徹底能夠涉獵多門語言。在日常的工做之中,也能夠嘗試選擇相對適合的編程語言來完成相關的工做。html
在團隊技術文檔站搭建這塊,筆者嘗試了許多框架,最終仍是選擇了Hexo,主要是因爲其豐富的主題和插件,而且靈活和高度可定製化,改起來也很是方便。咱們團隊文檔站即便用Hexo來構建,而且基於容器配置了完整的代碼流水線:docs.xin-lai.com前端
若是對站點配置、主題、插件存在疑問,能夠加羣溝通。node
Node.js 是一個基於 Chrome V8 引擎構建的JavaScript運行環境,是一個讓JavaScript可以運行在服務端的開發平臺。Node.js能夠方便地搭建響應速度快、易於擴展的Web應用。Node.js 使用事件驅動, 非阻塞I/O模型而得以輕量和高效,很是適合在分佈式設備上運行數據密集型的實時應用。git
Node.js的誕生給前端開發人員帶來了極大的驚喜,傳統的Web 開發者,前端使用JavaScript進行編程,服務器端代碼得用另一種語言,好比Java、.NET、PHP 等等。可是 Node.js 出現以後,前端開發者使用JavaScript就能夠先後端通吃了。web
官方鏡像地址:https://hub.docker.com/_/nodedocker
使用Node.js編寫一個簡單的Web服務器很是簡單,主要須要用到http模塊,http模塊主要用於搭建 HTTP 服務端和客戶端,所有代碼以下所示:數據庫
// 加載http模塊 const http = require('http'); // 設置端口 const port = 80; // 建立Web服務器 const server = http.createServer((req, res) => { // 設置響應的狀態碼 res.statusCode = 200; // 設置響應的請求頭 res.setHeader('Content-Type', 'text/plain'); // 設置響應輸出文本 res.end('Hello World !'); }); // 設置Web服務器監聽端口 server.listen(port);
Dockerfile文件以下所示:npm
#指定node鏡像的版本 FROM node:8.9-alpine #對外暴露的端口 EXPOSE 80 # 複製文件 COPY . . # 運行 ENTRYPOINT ["node","app.js"]
構建命令以下所示:編程
docker build --rm -f "dockerfile" -t nodetest1:latest .
運行:後端
docker run --rm -p 4000:80 nodetest1:latest
在平常開發中,一些簡單的腳本的編寫,爲了不反覆的構建過程,你們一樣能夠參考PHP一節,而後直接運行Node.js的鏡像來執行Node.js的腳本。
參考腳本以下所示:
docker run -it --rm ` --name node-running-script ` -v D:\temp\node:/usr/src/myapp ` -w /usr/src/myapp ` node:8.9-alpine node app.js
Hexo 是一個快速、簡潔且高效的博客(不只僅是博客)框架,他可使用 Markdown(或其餘渲染引擎)解析文章,在幾秒內,便可利用靚麗的主題生成靜態網頁。咱們能夠用其來搭建博客、文檔站點或者其餘官網。接下來,咱們將使用Hexo來搭建團隊技術文檔站。之因此選擇Hexo,主要緣由以下:
Hexo的主題不少,咱們在官網就能找到不少可用的主題,並且均已開源,以下所示:
在官網,咱們就能夠找到不少各類各樣的插件,好比搜索、字數統計、自動分類、百度網址提交、靜態資源壓縮等等各類各樣的開源插件:
不管是主題仍是插件,均爲開源。相關主題的修改也很是簡單,您只要具有必定的JavaScript和Html的知識,就能夠完成對主題和插件的修改。
不管是搭建博客仍是技術文檔站,使用Markdown進行文章編寫都是須要優先考慮的。團隊成員僅需提交Markdown,就能夠生成一個漂亮美觀的靜態站點,這是一件多麼愜意的事情啊!
接下來,咱們就演示如何一步一步的使用Hexo來構建團隊技術站點:
在安裝Hexo以前,咱們先必須安裝好如下內容:
接下來,咱們僅需使用如下命令來安裝Hexo:
npm install -g hexo-cli
npm是Node.js的包管理工具,在安裝Node.js時會順帶安裝好,經過以上命令,咱們將使用npm全局安裝(安裝到全局目錄)hexo-cli。
接下來,咱們能夠開始使用Hexo建站了。首先咱們須要進行一些站點初始化的工做:
hexo init <folder>
目錄爲選填,不填則默認當前目錄。
初始化完成以後,就能夠看到目標目錄下多了不少內容:
接下來,咱們使用npm管理工具進行安裝相關包:
npm install
在根目錄下,咱們能夠找到「_config.yml」文件,經過修改該文件,咱們能夠在此配置大部分參數:
具體配置信息見官網說明:https://hexo.io/zh-cn/docs/configuration
默認狀況下,Hexo進行站點初始化時,已經完成了默認主題(landscape)和內容(hello-world.md)的設置,咱們能夠直接執行如下命令來生成靜態文件:
hexo generate
執行以後,咱們能夠在「public」目錄看到如下靜態文件:
咱們還可使用命令「hexo deploy」來部署站點,好比部署到GitHub而後使用GitHub進行託管。Hexo支持多種部署方式,具體見官網:https://hexo.io/zh-cn/docs/deployment
咱們也可使用官方組件hexo-server進行託管咱們的靜態站點,在使用以前,咱們得先進行安裝:
npm install hexo-server –save
安裝完成後,就可使用如下命令來啓動web服務器來進行查看了:
hexo server -p 5000
-p參數用於指定端口,默認端口爲4000:
接下來,咱們就能夠用瀏覽器直接打開這個地址進行訪問了:
至此,一個簡單的靜態站點就搭建好了。咱們能夠配置導航連接,或者使用主題和插件來支持各類自定義的功能。例如以下所示的站點:
初步瞭解Hexo以後,咱們可使用Docker來構建和託管咱們的站點。主體參考流程以下所示:
以上流程僅供參考,TeamCity的配置請參考DevOps相關章節。
Dockerfile文件以下所示:
FROM node:10.15.3-alpine # 設置標籤 LABEL author=雪雁 email=xinlai@xin-lai.com site=https://docs.xin-lai.com # 設置容器內端口 EXPOSE 8000 # 添加目錄 ADD . /app # 設置當前工做目錄 WORKDIR /app # 複製文件 COPY . . # 設置npm而且使用npm安裝hexo以及相關插件,而後生成靜態頁而且安裝hexo-server RUN npm config set unsafe-perm true && \ npm config set registry 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 # 設置工做目錄 WORKDIR src # 使用hexo-server託管靜態文件 ENTRYPOINT ["hexo", "server","-p","8000"]