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