easymock的docker-compose部署
阿新 • • 發佈:2021-01-21
網上看的幾篇部署教程都不行,最終還是參考了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))