如何將Node.js應用程式透過Docker佈署上線

要將你的Node.JS應用程式利用Docker來佈署,需要準備好幾件事情:
* 安裝Docker
* 建立Node.js 應用系統
* 建立Dockerfile
* 建立Docker image

建立 Dockerfile

FROM risingstack/alpine:3.3-v4.2.6-1.1.3   // mhart/alpine-node

# 建立應用系統目錄
RUN mkdir -p /usr/src/app

COPY package.json /usr/src/app/package.json  
RUN npm install

# Add your source files
COPY . /usr/src/app/
ENV PORT 80   # 設定對外使用的PORT
CMD ["npm","start"]  
  • FROM:表示要以哪個image作為基礎
  • COPY:將Dockerfile同目錄下的package.json複製到Docker機器中
  • RUM:在Docker機器中執行特定指令
  • CMD:一個Dockerfile只能有一個CMD,以作為啟動此images的指令

建立 image

建立完Dockerfile後,就可以使用: $>docker build . 來開始建立Docker images

$>docker build -t appname/image-name .

完成後可以使用:$>docker images 看看image是否有建立成功,執行此image:

$>docker images

測試

$>docker run -p 3000:80 appname/image-name

// 或是

$>docker run imageID

發布

部屬

// login to Azure
az login
// create a Resource Group
az group create -n your-group-name
// create the container
az container create -n your-app-name -g your-group-name --image your-image-name --ip-address public