搭建本地easy-mock的爬坑之路
看了网上的一些方法,第一种是按照 添加链接描述
这个链接里面的方法分别安装node mogonDB Redis s 有一定的版本要求。node 的版本不能超过v9。用这个方法试了一下,没有安装成功,是因为我本地的node过高,,不想降级别,然后试了网上说的另一种方法添加链接描述
看了一些介绍说是基于docker-compose安装,简单,不需要额外安装mongodb、Redis 我最后选择了用第二种方法安装
这里我主要介绍在安装过程中我遇到的坑
1.第一步:docker-compose
具体的安装方法参照:
这里我遇到的第一个坑是,我本地的win10系统是家庭版 本地没有Hyper -V这个配置。
第一坑:
新建hyperv.txt 粘贴一下内容 然后改文件的后缀hyperv.cmd,然后右键以管理员的身份运行,加载完输入 y 重新启动电脑
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
启用或关闭Windows功能:勾选Hyper-V
第二坑:安装Docker Installer.exe 地址:添加链接描述
造成这种错误的原因是因为:
因为docker for win目前只提供给windows专业版用户和企业版用户,因此我们需要伪装成专业版绕过安装检测。
由于Docker Desktop会在安装的时候检测系统版本,直接安装会显示安装失败。所以需要改**册表绕过安装检测。
打开注册表,定位到HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion,点击current version,在右侧找到EditionId,右键点击EditionId 选择“修改“,在弹出的对话框中将第二项”数值数据“的内容改为Professional,然后点击确定
打开注册表的快捷方法是:
wind+R 输入 regedit
第三坑: 提示Installation failed:Containers Windows Feature is not available
解决方法:新建containers.cmd,(这个新建的文件可以是单独放在一个你认为合适的文件下)编辑内容如下,以管理员身份运行,执行完后会提示重启电脑:Y。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*containers*.mum >containers.txt
for /f %%i in ('findstr /i . containers.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del containers.txt
Dism /online /enable-feature /featurename:Containers -All /LimitAccess /ALL
pause
-----安装成功-----
cmd命令行执行docker version查看docker版本
打开docker桌面的右下角会有一个图标
第四坑:官方给出的文件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
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:
这个文件新建的位置 我是放在了D 盘的一个文件夹下 然后在这个文件下
第一次使用的时候我没有更改里面的内容 然后在这个文件下执行 git brash 进入到这个文件夹执行
启动:docker-compose up -d
这个时候执行的时候一直提示 Drive has not been shared
解决办法:在setting中勾选D 默认选中的是C 代表C 盘是分享盘,我新建的docker-compose.yml 这个文件是在D 盘。
第五坑:
我默认使用的docker-compose.yml 这个文件是官方给出的例子,没有做任何改动 在运行的是时候报了在启动的错误
解决办法
version: '3'
services:
mongodb:
image: mongo:3.4.1
volumes:
# ./data/db 数据库文件存放地址,根据需要修改为本地地址(修改的第一个地方重新命名文件名)
- './mongo_data/db:/data/db'
networks:
- easy-mock
restart: always
redis:
image: redis:4.0.6
command: redis-server --appendonly yes
volumes:
# ./data/redis 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:
下一篇: Easy Mock小白教程