1. 程式人生 > 實用技巧 >NodeJS應用打包成docker映象

NodeJS應用打包成docker映象

之前寫過一個基於nodejs的小型文件管理系統(這裡),Express框架,資料儲存用mongodb,檔案儲存用minio。最近需要打包成docker映象進行部署。

1、先編寫一個dockfile檔案吧:

FROM node:14

ENV APP_ID="skdocmgr" \
    MONGO_URL="mongodb://localhost/skdocmgr" \
    ADMIN_PASS="admin" \
    MINIO_HOST="" \
    MINIO_PORT="" \
    MINIO_AK="" \
    MINIO_SK="" \
    MINIO_BUCKET=
"" WORKDIR /app COPY package.json /app RUN npm install COPY . /app EXPOSE 3010 CMD node ./bin/www ${APP_ID} ${MONGO_URL} ${ADMIN_PASS} ${MINIO_HOST} ${MINIO_PORT} ${MINIO_AK} ${MINIO_SK} ${MINIO_BUCKET}

依賴NODEJS 14版本,ENV定義外部變數,然後通過CMD命令列傳給node應用,埠是3010。

2、準備好檔案

打包映象(我是放到centos伺服器上打包):

docker build -t docmgr .

docmgr是映象名稱。

打包成功。

3、執行

假設已經安裝了mongodb和minio並配置好賬號以及桶,執行命令:

docker run -d -p 3010:3010 --name=docmgr \
-e APP_ID=app_test \
-e MONGO_URL=mongodb://192.168.50.108/skdocmgr  \
-e ADMIN_PASS=admin123 \
-e MINIO_HOST=192.168.50.108 \
-e MINIO_PORT=9000  \
-e MINIO_AK=root  \
-e MINIO_SK=Root123456  \
-e MINIO_BUCKET=docmgr  \
-v /disk1/docmgr:/data/doc/SkDocMgr \ docmgr:latest