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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM