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
瀏覽器
大功告成!