docker下安装easymock

部署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
此时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

猜你喜欢

转载自blog.csdn.net/lihongshi646951163/article/details/88432074