easymock的docker-compose部署
网上看的几篇部署教程都不行,最终还是参考了docker hub仓库中的easymock教程 https://hub.docker.com/r/easymock/easymock
1. 在服务器上新建一个文件夹 easymock,用于放置配置文件 production.json 和 docker-compose.yml
docker-compose.yml
version: '2'
services:
mongodb:
image: mongo:3.4
volumes:
# ./data/db 数据库文件存放地址,根据需要修改为本地地址
- './data/db:/data/db'
networks:
- easy-mock
restart: always
redis:
image: redis:4.0.6
command: redis-server --appendonly yes
volumes:
# ./data/redis redis 数据文件存放地址,根据需要修改为本地地址
- './data/redis:/data'
networks:
- easy-mock
restart: always
web:
image: easymock/easymock:1.6.0
command: /bin/bash -c "npm start"
ports:
- 7300:7300
volumes:
# 日志地址,根据需要修改为本地地址
- './logs:/home/easy-mock/easy-mock/logs'
# 配置地址,请使用本地配置地址替换
- './production.json:/home/easy-mock/easy-mock/config/production.json'
networks:
- easy-mock
restart: always
networks:
easy-mock:
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
}
},
"ldap": {
"server": "",
"bindDN": "",
"password": "",
"filter": {
"base": "",
"attributeName": ""
}
},
"fe": {
"copyright": "",
"storageNamespace": "easy-mock_",
"timeout": 25000,
"publicPath": "/dist/"
}
}
2. 在文件夹easymock下,执行 docker-compose up -d 此时大概率会报错,因为数据卷映射的 production.json 和 logs 没有权限
3. 执行 docker-compose down停止docker-compose,再执行下面授权指令
chmod 777 logs 和
chmod 777 production.json
然后再执行 docker-compose up -d 就能通过 http://ip:7300 进行访问了
4. 总结:
主要注意两点:
一. production.json 文件中配置mongo和redis地址中localhost 分别替换为 mongo 和redis
二. 文件的权限
以上两点在官方文档都有说明.网上博客质量良莠不齐,还是官方文档最为可靠
报错了要看日志
(试过把docker-compose.yml文件中的启动命令改为 npm run dev, 虽然能启动,但是通过外网ip访问页面时, 请求js文件报错 ERR_CONTENT_LENGTH_MISMATCH 200 (OK) )

浙公网安备 33010602011771号