基於Docker部署nodejs應用
背景
公司基於Vue.js的項目最近需要部署到雲端,因此需要先行在公司內部Docker環境下驗證相關技術,因而有本文之前提。
本文展示在Docker容器中,應用部署Nodejs程序。
獲取基礎鏡像
Docker Hub中有官方node鏡像,按照自己的需求直接獲取對應版本的image即可。我獲取的是8.0-alpine版本,因為基於alpine的node鏡像足夠小,僅有63.7 MB。
獲取源碼
從源碼庫上,獲取到整個源代碼工程。(過程略)
編寫Dockerfile
首先,我們確立文檔模型。目錄結構如下:
~/nodejs
Order/ [nodejs源碼目錄]
Dockerfile
Dockerfile內容如下
# 引用鏡像
FROM node:8.0-alpine
# 作者
MAINTAINER yubing
# 執行命令,創建文件夾
RUN mkdir -p /home/Order
# 將Order目錄拷貝到鏡像里
ADD ./Order /home/Order
# 指定工作目錄
WORKDIR /home/Order
# 安裝依賴及構建node應用
RUN npm install
RUN npm build
# 配置系統變量,指定端口
ENV HOST 0.0.0.0
ENV PORT 8081
# 將端口8081開放
EXPOSE 8081
# 容器啟動命令
CMD ["npm", "start"]
構建鏡像
在Dockerfile所在目錄執行docker build命令,構建鏡像。
docker build --rm -t orderui:20180531 .
其中,--rm 是刪除構建過程中,產生的臨時鏡像,-t 是指定鏡像名稱及標識,如:orderui:20180531,最后. 代表默認選擇Dockerfile為構建文件。
創建容器
docker run -p 8081:8081 --name orderui -d orderui:20180531
-p 是指定端口映射,--name 給容器命名,-d 后台執行
稍等片刻,等npm start執行完畢后,即可訪問。
