Docker部署nodejs应用并使用PM2作为守护进程 |
您所在的位置:网站首页 › pm2自动部署 › Docker部署nodejs应用并使用PM2作为守护进程 |
环境:centos7.6 Docker version 18.06.0-ce mkdir /data cd /data拉取最新keymetrics/pm2:latest-alpine镜像 docker pull keymetrics/pm2:latest-alpine从github上拉取代码,先要安装git git clone https://github.com/keymetrics/pm2-docker-alpinecd /data/pm2-docker-alpine/example-app 编写Dockerfile,WORKDIR:指定容器的工作目录 COPY:将当前目录下的文件拷贝至容器的/home/Service目录下 EXPOSE 3000:暴露容器内的端口为3000 [root@localhost example-app]# more Dockerfile FROM keymetrics/pm2:latest-alpine # Bundle APP files RUN mkdir -p /home/Service WORKDIR /home/Service COPY . /home/Service #COPY src src/ #COPY package.json . #COPY pm2.json . # Install app dependencies ENV NPM_CONFIG_LOGLEVEL warn RUN npm install --production # Show current folder structure in logs #RUN ls -al -R EXPOSE 3000 CMD [ "pm2-docker", "start", "pm2.json" ]构建容器镜像,注意最后有个点 docker build -t test_nodepm2 .查看构建成功的镜像 docker images启动容器,并将容器的/home/Service映射到宿主机的/data/pm2-docker-alpine/example-app目录下,便于代码发布,修改 docker run --name mynodepm2 -d -v /data/pm2-docker-alpine/example-app:/home/Service -p 3000:3000 test_nodepm2查询容器的运行状态 在浏览器上访问容器所在的服务地址+暴露出来的端口,测试服务是否能正常 查询项目运行状态 docker exec -it 8205f9c2f6cd pm2 list
更多命令可以执行--help 查看 docker exec -it 8205f9c2f6cd pm2 --help如何进入容器内 docker exec -it 8205f9c2f6cd /bin/sh修改容器内的时区为中国上海,用于和当前时间同步,注意以下所有操作在容器内进行操作 apk add -U tzdata cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime apk del tzdata
参考:https://hub.docker.com/r/keymetrics/pm2 如有疑问可以留言
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |