docker环境中安装node、pm2,映射项目文件守护程序

摘要:
gitpullnode:2.编写Dockerfile,在文件中添加安装pm2命令。建议新建一个单独docker的文件,文件中存放Dockerfile,否则在build镜像的时候会将整个目录下的文件都发送至docker。/bin/shcd/opt/appfilepm2start./start.js--namemyapppm2logs-fmyapp4.执行build,开始创建基于node镜像的新镜像,包含了pm2,也可使用save(打包)、load(解压)命令从其他服务器复制镜像使用。sudodockerbuild-tnode_pm2:0.1.5.镜像创建完成后,开始创建容器,本机端口以及项目文件和容器的映射,设置容器名。

1.docker安装完成后,获取对应版本,可自定义node版本,默认为最新版本。

git pull node:<version>
2.编写Dockerfile,在文件中添加安装pm2命令。建议新建一个单独docker的文件,文件中存放Dockerfile,否则在build镜像的时候会将整个目录下的文件都发送至docker。
FROM node:8.12
RUN apt-get update && apt-get install -y apt-transport-https &&
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - &&
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list &&
apt-get update && apt-get install -y yarn
RUN yarn config set registry https://registry.npm.taobao.org --global &&
yarn config set disturl https://npm.taobao.org/dist --global
RUN npm config set registry https://registry.npm.taobao.org --global &&
npm config set disturl https://npm.taobao.org/dist --global
RUN npm install -g pm2
ADD ./entry.sh /
RUN chmod +x /entry.sh
EXPOSE 3000 6001
CMD ["/entry.sh"]
3.编写启动脚本文件(entry.sh),在dockerfile中添加后有效,当创建容器时会自动执行该文件。注意#!/bin/sh
#!/bin/sh
cd /opt/appfile
pm2 start ./start.js --name myapp
pm2 logs -f myapp
4.执行build(在dockerFile同目录下执行),开始创建基于node镜像的新镜像,包含了pm2,也可使用save(打包)、load(解压)命令从其他服务器复制镜像使用。
sudo docker build -tnode_pm2:0.1.
5.镜像创建完成后,开始创建容器,本机端口以及项目文件和容器的映射,设置容器名。
docker run -p 3000:3000 -v /home/jlj/work/myapp:/opt/myapp--name myapp-dnode_pm2:0.1
docker run -d --name miaozhen_loopback -p 6201:6201 -p 6202:6202 -v /opt/starviews/miaozhenlb:/opt/bianque/nodeserver bianque_nodejs:latest
6.查看日志,是否启动成功
docker logs -f myapp
sudo docker logs -f myapp-t --tail 行数 容器名

7.调试容器时,可执行代码进入,仅限正在运行的容器有效

docker exec -it myapp /bin/bash

8.如果牵扯到跨主机服务访问时,可采取--link方式启动容器,服务名称改为http://host:6001

docker run --link container_name:host -p 3000:3000 -v/home/jlj/work/myapp:/opt/myapp--name myapp-dnode_pm2:0.1

docker run -d --name miaozhen_manage -p 6213:3001 -v /opt/starview/miaozhenmanage/webapp:/opt/bianque/nodeserver bianque_nodejs:latest

9.docker查看挂载路径

docker inspect redis-master |grepMounts -A 10

免责声明:文章转载自《docker环境中安装node、pm2,映射项目文件守护程序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WorkBench3.2 + VxWorks6.8安装教程Ubuntu18.04下strongSwan配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

nodejs全局安装路径的位置

一般nodejs安装在默认的C盘,如果不知道安装在哪里,可以打开控制面板-系统和安全-系统-高级配置中找到 所谓全局安装: 是指安装在node中node_module的根目录里,可以在电脑的任何位置调用这个方法。 那么,如何在找到全局安装的位置呢? 方法一: 设置到自己想要放的位置: 打开:nodejs安装目录/node_modules/npm/.npm...

Mysql:主从集群配置

我这里是去网易蜂巢取得镜像:https://c.163yun.com/hub#/m/home/ 命令:docker pull hub.c.163.com/library/mysql:latest 拉取完之后查询镜像 命令:docker images 3.配置主从复制 (1)创建配置文件 目录:/usr/local/mysql/ 注意:目录你个人设定,这不...

webstorm2019.2永久破解教程(亲测有效)

webstorm2019.2永久破解教程(亲测有效) 一、总结 一句话总结: 1、Help -> Edit Custom VM Options ... 来编辑vmoptions文件 2、vmoptions文件最后加上:-javaagent:你的jetbrains-agent.jar的绝对路径 3、破解后,可以采用License server方式激活...

docker固定IP重启不变的方法

来源于https://github.com/lioncui/docker-static-ip Env hello all. This script can configure container's ip-address persistence. To confirm before use: pip install docker-py yum insta...

mac升级node后还是原来版本问题

在执行了 安装n模块:npm install -g n 后发现当前生效版本还是原来版本, 造成不生效的原因: node默认的安装目录与使用管理工具n安装的目录不一致 一般默认安装n 版本会在  /usr/local 下, 而我的电脑生效地址在nvm 下 正确的安装方式: 通过nvm 安装 nvm install 14.17.0   然后查看  node -...

Luci实现框架

1.总述 上一篇总结了uhttpd的工作方式,openwrt中利用它作为web服务器,实现客户端web页面配置功能。对于request处理方式,采用的是cgi,而所用的cgi程序就是luci,工作框架如下图所示: Client端和serv端采用cgi方式交互,uhttpd服务器的cgi方式中,fork出一个子进程,子进程利用execl替换为luci进...