zoukankan      html  css  js  c++  java
  • docker环境中安装node、pm2,映射项目文件守护程序


    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 -t node_pm2:0.1 . 
     
    5.镜像创建完成后,开始创建容器,本机端口以及项目文件和容器的映射,设置容器名。
    docker run -p 3000:3000 -v /home/jlj/work/myapp:/opt/myapp --name myapp -d node_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 -d node_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 | grep Mounts -A 10

  • 相关阅读:
    shell脚本中的进度指示器
    shell脚本输出带颜色字体
    Linux awk命令用法
    Kubernetes系列02—Kubernetes设计架构和设计理念
    kubernetes学习01—kubernetes介绍
    kubernetes 06—kubernetes资源清单定义
    http服务详解 一次完整的请求过程
    Mysql数据库的二进制安装和基础入门操作
    项目实战10.1—企业级自动化运维工具应用实战-ansible
    linux OSI七层模型、TCP/IP协议栈及每层结构
  • 原文地址:https://www.cnblogs.com/jlj9520/p/9791123.html
Copyright © 2011-2022 走看看