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) )

  

posted @ 2021-01-21 11:32  会潮  阅读(305)  评论(0)    收藏  举报