基于Docker搭建CNPM私有仓库

步骤

  • git仓库下克隆cnpmjs.org项目

    git clone https://github.com/cnpm/cnpmjs.org.git
    复制代码
  • 进入到cnpmjs.org项目内

    cd cnpmjs.org
    复制代码
  • 查看Dockerfile文件

    ## 引用node镜像
    FROM node:6.11
    ## 作者
    MAINTAINER Bono Lv <lvscar  {aT} gmail.com>
    
    # Working enviroment工作环境
    ENV \
        CNPM_DIR="/var/app/cnpmjs.org" \
        CNPM_DATA_DIR="/var/data/cnpm_data" 
        
    # 执行命令,在容器中创建目录
    RUN mkdir  -p ${CNPM_DIR}
    
    ## 设置工作目录
    WORKDIR ${CNPM_DIR}
    
    ## 将package.json文件拷贝到容器的指定目录下
    COPY package.json ${CNPM_DIR}
    
    ## 设置容器中的npm镜像地址
    RUN npm set registry https://registry.npm.taobao.org
    
    ## 下载依赖
    RUN npm install
    
    ## 将宿主机中cnpmjs.org项目下的所有文件拷贝到容器的指定目录中
    COPY .  ${CNPM_DIR}
    
    ## 将宿主机中config.js文件拷贝到容器中指定路径下config目录下,此步非常关键,也就是说容器中将使用## config.js来当做cnpmjs的配置文件
    COPY docs/dockerize/config.js  ${CNPM_DIR}/config/
    
    ## 开放7001和7002端口
    EXPOSE 7001/tcp 7002/tcp
    
    ## 挂载数据卷绑定给宿主机
    VOLUME ["/var/data/cnpm_data"]
    
    # Entrypoint容器启动命令
    CMD ["node", "dispatch.js"]
    复制代码
  • 找到docs/dockerize/config.js文件,因为其是cnpmjs的配置文件,所以要修改其中几处配置

    • 在mysql中新建数据库cnpmjs,cnpmjs.org/docs/db.sql文件导入数据库,完成建表工作
    • 修改config.js文件
    ## enableCompress设置为true
    enableCompress: true
    
    ## 修改数据库配置
    database: {
        db: 'cnpmjs',
        username: 'root',
        // 填写数据库密码
        password: '',
        // 数据源设置为mysql
        dialect: 'mysql',
        // 设置数据库Host地址(注意:如果mysql也运行在docker容器中的话,此处应填写宿主机的ip地址)
        host: '192.168.2.112',
        // 设置mysql端口号
        port: 3306,
        // 其他不需要修改,略...
    }
    复制代码
  • 接下来我们要构建镜像,在cnpmjs.org文件夹下执行docker build命令,构建镜像(构建过程中需要下载依赖包,时间较长请耐心等待)

    docker build -t cjh/cnpmjs:20180911
    复制代码

    当出现successfully字样的时候就说明已经构建成功了,此时我们执行查看镜像列表命令:

    docker image ls
    复制代码

    此时我们刚刚构建的镜像就在列表中。

  • 然后我们使用构建好的镜像来运行cnpmjs容器

    docker run 
    	-d \
    	-p 7001:7001 \
    	-p 7002:7002 \
    	-v /home/cnpm/cnpm_data:/var/data/cnpm_data \
    	--restart always \
    	--name cnpmjs \
    	cjh/cnpmjs:20180911
    复制代码
    • -d 容器在后台运行,并在成功启动容器后输出容器的完整ID
    • -p 设置宿主机端口与容器内端口的映射关系
    • -v 宿主机与容器内文件映射

    待容器启动成功之后,我们来查看正在运行的容器列表:

    docker ps
    复制代码

  • 通过浏览器访问,CNPM服务:http://192.168.2.112:7002

大功告成!

转载于:https://juejin.im/post/5b9bb6a35188255c8f069095

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值