git仓库下克隆cnpmjs.org项目node
git clone https://github.com/cnpm/cnpmjs.org.git
复制代码
进入到cnpmjs.org项目内mysql
cd cnpmjs.org
复制代码
查看Dockerfile文件git
## 引用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的配置文件,因此要修改其中几处配置github
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命令,构建镜像(构建过程当中须要下载依赖包,时间较长请耐心等待)sql
docker build -t cjh/cnpmjs:20180911
复制代码
当出现successfully字样的时候就说明已经构建成功了,此时咱们执行查看镜像列表命令:docker
docker image ls
复制代码
此时咱们刚刚构建的镜像就在列表中。数据库
而后咱们使用构建好的镜像来运行cnpmjs容器npm
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
复制代码
待容器启动成功以后,咱们来查看正在运行的容器列表:json
docker ps
复制代码
经过浏览器访问,CNPM服务:http://192.168.2.112:7002
浏览器
大功告成!