之前寫過一個基於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