前端工程师如何用docker搭建自己的Mcok服务器

683 阅读3分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

一、搭建mock服务器的必要性

  • 在公司的实际开发业务中,无论是PC端、H5端、还是后台管理系统的前端部分,大多采用前后端分离的开发模式。在从产品评审完原型,前后端程序员,开始了各自的开发。等到了前后端接口的时候,往往因为,前后端程序员定义的数据结构和字段不一致,导致要修改很多的代码,又或者后端要的数据规范前端传值不对,反复的调试,从而大大的影响了开发的效率。
  • 因而,在原型评审完后,前后端程序员,不应该立马埋头就开始按照各自的理解就去开发,而应该先商量好传参和返回数据的规范,先完成mock接口的假数据,后期调试的时候,只需要换个地址成真实的接口地址,一个模块的联调自测时间可以从原来的一天,缩短到2-3个小时,这将大大的提高开发效率,从而提早进入测试阶段,更早的上线,提高团队效率,解决团队资源,时间成本。特别是多个小团队,并行项目的时候,提升的更加明显。

二、利用docker搭建mocker服务器

2.1 准备一台云服务器,安装docker、docker-compose

# 1. 设置稳定仓库
 sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
 # 2. 安装docker
 sudo yum install docker-ce docker-ce-cli containerd.io
 # 3. 安装docker-compose 
 curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 # 4. 权限
sudo chmod +x /usr/local/bin/docker-compose 
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

docker -v 查看docker成功安装

image.png

image.png

2.2 利用刚装好的docker,部署MongoDB

docker pull mongo:4
# 运行容器
sudo docker run -d --name some-mongo -p 10050:27017 mongo:4
# 查看docker进程	
docker ps 
# 放行端口
firewall-cmd --zone=public --add-port=10050/tcp --permanent
# 重新加载防火墙配置文件
firewall-cmd --reloadjs

docker ps 看mongoDb已经跑起来了

image.png

我们可以在本地用studio 3T链接mongodb 注意如果不能链接,看在云服务器是否放行了对应的端口, 截屏2021-08-28 下午7.40.05.png

image.png

2.3 利用docker,部署mock服务器

市场上的mock服务,好用的有两种

  1. doclever doclever.cn/controller/…
  2. yapi hellosean1025.github.io/yapi/index.… 下面我们使用doclevel来部署mock 使用docker-compose
# 1. 在 /home/doclever/ 下创建  vi docker-compose.yml
services:
  DOClever:
    image: lw96/doclever
    restart: always
    container_name: "DOClever"
    ports:
    - 20080:10000
    volumes:
    - /srv/doclever/file:/root/DOClever/data/file
    - /srv/doclever/img:/root/DOClever/data/img
    - /srv/doclever/tmp:/root/DOClever/data/tmp
    environment:
    - DB_HOST=mongodb://mongo:27017/DOClever
    - PORT=10000
    links:
    - mongo:mongo

![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/eb601d67eacb4cc8adcfb170f793f908~tplv-k3u1fbpfcp-watermark.image)
  mongo:
    image: mongo:latest
    restart: always
    container_name: "mongodb"
    volumes:
    - /srv/doclever/db:/data/db

# 2. 使用命令运行容器
docker-compose up -d

# 3. 云服务器放行端口20080

接下来外网访问成功 image.png

三、使用doclever

image.png

image.png

image.png

1. 配置好接口好,可以直接postman访问mock服务器, 也可以作为内网本地访问

image.png

image.png

image.png

image.png

2. 一旦后端人员把接口状态标记开发完成, 就不会走mock服务器了, 就会走后面的地址了

# http://localhost:8081 是开发完成后走的地址
node net.js http://***.**.222.218:20080/mock/612a3548977249000c84c170 http://localhost:8081

开发完成, 本地没有接口postman就报错了, 证明环境切回正式的接口了 image.png