部署easymock:第一种方法 docker-compose部署easymock
部署easymock的第一种方法(其他两种方法请查看博主其他博客【本地部署、容器部署】):本文将使用docker-compose进行easymock的部署:(不要额外安装mongodb、redis)第一步安装docker-compose:1.执行命令下载安装docker-composecurl -L https://get.daocloud.io/docker/compose/relea...
部署easymock的第一种方法(其他两种方法请查看博主其他博客【服务器部署、容器部署】):
本文将使用docker-compose进行easymock的部署:
(不要额外安装mongodb、redis)
第一步安装docker-compose:
1.执行命令下载安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.32.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
或者
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
此时docker-compose被安装在了/usr/local/bin/下,请记住该根目录(可以自行修改),其中1.32.1为docker-compose的版本号,请根据官网以及需要修改,docker-compose的版本将关系到docker-compose.yml文件的书写语法格式(请参考官方网址:https://docs.docker.com/compose/compose-file/)
2.授权
chmod +x /usr/local/bin/docker-compose
命令解析(已了解过的同学请绕过下面解析):
chmod -表示授权
chmod +x 等同于 chmod a+x
+前边的a标识给所有用户授权
a:代表所有
u:代表用户(文件所属者)
g:代表用户组
o:代表其他
3.根据说明,修改docker-compose.yml文件如下:
(docker-compose.yml文件可从easymock的官方github【https://github.com/easy-mock】中下载easy-mock-docker中获取)
注意点: 加粗字体:privileged: true,必须都添加上,不然会出现以下情况:
version: "3.3"
services:
mongodb:
image: mongo:3.4
privileged: true
volumes:
- type: bind
source: ./data/db # 数据库文件存放地址,根据需要修改为本地地址
target: /data/db
redis:
image: redis:4.0.6
privileged: true
command: redis-server --appendonly yes
volumes:
- type: bind
source: ./data/redis # redis 数据文件存放地址,根据需要修改为本地地址
target: /data
web:
image: easymock/easymock:1.6.0
privileged: true
command: /bin/bash -c "npm start"
links:
- mongodb:mongodb
- redis:redis
ports:
- 7300:7300
volumes:
- type: bind
source: ./logs # 日志地址,根据需要修改为本地地址
target: /home/easy-mock/easy-mock/logs
- type: bind
source: ./production.json # 配置地址,请使用本地配置地址替换
target: /home/easy-mock/easy-mock/config/production.json
4.在docker-compose根目录下,新增文件production.json作为覆盖easy-mock(原来是default.json)的新的配置文件
注意点:
(1)easy-mock项目中config文件夹下有一个default.json,对比如下:
(2)在创建文件内容之前请内容进行json格式校验,否则会出现以下情况:
加粗字体表示production.json的文件内容不符合json格式。
web_1 | /home/easy-mock/easy-mock/node_modules/config/lib/config.js:933
web_1 | throw new Error("Cannot parse config file: '" + fullFilename + "': " + e3);
web_1 | ^
web_1 |
web_1 | Error: Cannot parse config file: '/home/easy-mock/easy-mock/config/production.json': **SyntaxError: Unexpected token in JSON at position 2**
web_1 | at Config.util.parseFile (/home/easy-mock/easy-mock/node_modules/config/lib/config.js:933:11)
web_1 | at /home/easy-mock/easy-mock/node_modules/config/lib/config.js:702:28
web_1 | at Array.forEach (<anonymous>)
web_1 | at /home/easy-mock/easy-mock/node_modules/config/lib/config.js:698:14
web_1 | at Array.forEach (<anonymous>)
web_1 | at Config.util.loadFileConfigs (/home/easy-mock/easy-mock/node_modules/config/lib/config.js:697:13)
web_1 | at new Config (/home/easy-mock/easy-mock/node_modules/config/lib/config.js:122:27)
web_1 | at Object.<anonymous> (/home/easy-mock/easy-mock/node_modules/config/lib/config.js:1767:31)
web_1 | at Module._compile (module.js:573:30)
web_1 | at Object.Module._extensions..js (module.js:584:10)
production.json文件内容:
{
"port": 7300,
"host": "0.0.0.0",
"pageSize": 30,
"proxy": false,
"db": "mongodb://mongodb/easy-mock",
"unsplashClientId": "",
"redis": {
"keyPrefix": "[Easy Mock]",
"port": 6379,
"host": "redis",
"password": "",
"db": 0
},
"blackList": {
"projects": [],
"ips": []
},
"rateLimit": {
"max": 1000,
"duration": 1000
},
"jwt": {
"expire": "14 days",
"secret": "shared-secret"
},
"upload": {
"types": [
".jpg",
".jpeg",
".png",
".gif",
".json",
".yml",
".yaml"
],
"size": 5242880,
"dir": "../public/upload",
"expire": {
"types": [
".json",
".yml",
".yaml"
],
"day": -1
}
},
"fe": {
"copyright": "",
"storageNamespace": "easy-mock_",
"timeout": 25000,
"publicPath": "/dist/"
}
}
将docker-compose.yml和production.json放到docker-compose的根目录下,在根目录下:
运行 docker-compose up -d。
-d:表示后台运行,如果直接看执行日志可去掉。
运行 sudo docker ps查看是否已运行。
必须要先开放7300端口。(可参考https://blog.csdn.net/lihongshi646951163/article/details/88728724)
在网页上输入IP:7300即可访问easy-mock
更多推荐
所有评论(0)