1.编写.dockerignore
构建镜像时,并不需要node_modules目录等内,可以使用.dockerignore忽略一下文件
# .dockerignoreDockerfilenode_modules/
2.编写Dockerfile文件
FROM mhart/alpine-node:7LABEL maintainer "test-nodejs.com"COPY localtime /etc/localtimeWORKDIR /appCOPY package.json /appRUN apk --update add git ????&& apk --update add curl ????&& rm -rf /tmp/* /var/cache/apk/* ????&& npm install ????&& npm install -g pm2COPY . /appEXPOSE 5000HEALTHCHECK CMD curl --fail http://localhost:5000/fundation || exit 1CMD ["pm2", "start", "pm2.json", "--no-daemon"]
- 设置WORKDIR
- 安装git,有些依赖需要从github获取,node基础镜像默认没有git
- node镜像默认也不带curl
- 安装pm2,该项目启动使用pm2
- 暴露端口5000
- HEALTHCHECH 健康检查
- pm2启动需要加 --no-daemon
Dockerfile 部署 nodejs
原文地址:https://www.cnblogs.com/bigberg/p/9007325.html