使用Docker在阿里云服务器部署easy-mock

一. 安装docker与docker-compose

建议直接参照官方文档,不再赘述
Ubuntu下安装Docker
Ubuntu下安装docker-compose

二. 创建easy-mock文件夹并建立docker-compose文档与自定义配置

  1. 创建并进入easy-mock文件夹

    mkdir /usr/local/docker/easy-mock
    cd /usr/local/docker/easy-mock
    
  2. 创建docker-compose.yml文档

    vim docker-compose.yml
    

    增加以下内容

    version: '3'
    
    services:
      mongodb:
        image: mongo:3.4.1
        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
        # 这里后面原命令为npm start,可能会无法启动(easymock的容器无限重启),推荐改为npm run dev
        command: /bin/bash -c "npm run dev"
        ports:
          - 7300:7300
        volumes:
          # 日志地址,根据需要修改为本地地址
          - './logs:/home/easy-mock/easy-mock/logs'
          # 配置地址,请使用本地配置地址替换(同一目录下创建production.json)
          - './production.json:/home/easy-mock/easy-mock/config/production.json'
        networks:
          - easy-mock
        restart: always
    
    networks:
      easy-mock:
    
  3. 创建自定义配置

    vim production.json
    

    新增以下内容 (与普通部署方式不同的是,“db"和"redis"条目需要将localhost改为"mongodb"和"redis”)

    {
          
          
        "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启动

  1. 由于使用远程shell连接服务器,推荐使用screen防止关闭连接后容器停止

    screen -mS easymock
    
  2. 确保在yml文件所在目录

    /usr/local/docker/easy-mock
    
  3. 启动

    # 启动并进入容器(推荐第一次启动这样启动,可以看到运行过程与报错信息)
    docker-compose up 
    # 以后台守护进程启动
    docker-compose up -d
    
  4. 使用反代理对easy-mock本地服务器地址进行代理
    Nginx反代理安装与配置 见我另一文章

    我在部署后遇到了一个问题,虽然已经能够访问到easy-mock的页面了,但是该页面资源缺失报错,vendor.js它请求返回是200的成功码,但是在network里最后变成了(failed)导致整个页面虽然加载成功但逻辑js资源缺失,点不动登录。在easy-mock-docker 的 github-Issues里有人提到过,但并未有人提到直接解决的方法,最后试了一下反代理(用的是https,http应该也能行)成功了,于是在这个Issues里留下了我的解决方案。

  5. 访问部署好的easy-mock

猜你喜欢

转载自blog.csdn.net/qq_33866817/article/details/109881414