docker部署node.js

1、dockerfile

FROM node:14.16.0

RUN mkdir -p /var/log/lily/
RUN mkdir -p /opt/node
# 工作目录
WORKDIR /opt/node

# COPY . /opt/node

RUN npm set registry https://registry.npm.taobao.org/ 
  && npm install pm2 -g 
  && npm install
# 使用pm2管理

CMD ["sh", "start.sh"]

# CMD ["npm install && node --use_strict app.js 4001 &"]


# CMD npm install 
# && node --use_strict app.js 4001 &


#启动一个服务用CMD即可
# CMD ["python3.5", "/opt/hrms/hrms/manage.py", "runserver", "0.0.0.0:8080"] 
 
#启动多个服务时,可以用CMD 执行一个脚本,在脚本中启动多个服务
# CMD source /opt/hrms/run/entrypoint.sh1
# CMD与ENTRYPOINT的区别就是CMD命令可以被docker-compose.yml文件中的command命令覆盖,一旦指定command,CMD命令就不再执行,而ENTRYPOINT永远不可被覆盖。
 
#启动多个服务时,还可以用ENTRYPOINT执行一个脚本,在脚本中启动多个服务
# ENTRYPOINT ["/opt/hrms/run/entrypoint.sh"]

# ENTRYPOINT ["/opt/node/start.sh"]

2、构建镜像

docker build -t node:v1 --rm=true .

3、启动docker

docker run -dti  -p 4001:4001 -v /opt/node:/opt/node -v /opt/node/log:/var/log/lily  --name node_4001_1 node:v1

 

start.sh

#! /bin/sh

npm install && node --use_strict app.js 4001 &

/bin/bash
原文地址:https://www.cnblogs.com/xiao-xue-di/p/14524961.html