Docker Compose学习实战(一)搭建本地EasyMock服务

Docker Compose学习实战(一)搭建本地EasyMock服务

EasyMock介绍

Easy Mock 是杭州大搜车无线团队出品的一个极其简单、高效、可视化、并且能快速生成模拟数据的在线 mock 服务。以项目管理的方式组织 Mock List,能帮助我们更好的管理 Mock 数据。

地址:https://www.easy-mock.com

在线文档:https://www.easy-mock.com/docs

本篇是对Docker Compose学习的一个小实践,搭建一个本地的EasyMock服务还能方便自己测试和部署,当然人家在线的服务也很好用~

Docker真的太方便了~

最小白方式

(1)安装Docker Desktop(自带了Docker Compose,点击下载),如果是Linux,安装参考 Docker Compose使用PS:Windows一键部署简易脚本,嫌麻烦的下载来双击运行即可,都不用管了,第一次运行脚本建议设置Docker阿里镜像源加速下载,请自行百度。du娘xia载:11n6

(2)在本地创建文件: docker-compose.yml

version: '3.3'
services:
  web:
    image: easymock/easymock:1.6.0
    container_name: web-easymock
    depends_on:
      - mongodb
      - redis
    command: /bin/bash -c "npm run start"
    ports:
      - 7300:7300
    networks:
      - easy-mock
    restart: on-failure 
  mongodb:
    image: mongo:3.4
    container_name: mongo-easymock
    networks:
      - easy-mock
  redis:
    image: redis:4.0.6
    container_name: redis-easymock
    command: redis-server --appendonly yes
    networks:
      - easy-mock
networks:
  easy-mock:

(三)在该文件目录下打开powershell(空白处按住shift选择powershell),键入启动命令 docker-compose -p easymock up -d

(四)完成后访问 http://localhost:7300 测试。

准备知识
  • 入门参考:Docker Compose使用

  • 官网命令文档:https://docs.docker.com/compose/reference

  • 官网脚本文档:https://docs.docker.com/compose/compose-file

  • EasyMock官方GitHub的DockerCompose方式部署

  • 我用的是Docker Desktop因此自带安装了Docker Compose,没有安装的参考 Docker Compose使用

详细版步骤

一、下载EasyMock官方GitHub的DockerCompose配置,修改 docker-compose.yml 如下

version: '3.3'

services:
  web: #服务名随便起
    image: easymock/easymock:1.6.0
    container_name: web-easymock #重命名启动容器名称
    depends_on: #depends_on标签用于解决容器的依赖、启动先后的问题,先启动redis和db,最后启动web
      - mongodb
      - redis
    command: /bin/bash -c "npm run start" #容器启动后运行的命令
    ports: #映射 宿主机端口:容器端口
      - 7300:7300
    networks:
      - easy-mock
    restart: on-failure #失败重启
    #挂载目录的各种方式演示,宿主机目录路径:容器目录路径,用宿主机的替换容器的。文档:https://docs.docker.com/compose/compose-file/#volumes
    #volumes:
      #方式一-相对路径
      #- '~/localHome:/home' #用户主目录,添加后启动报错,原因:路径需要单引号
      #- './localHome:/home:ro' #:ro表示访问模式
      #方式二-绝对路径
      #- '/usr/yoko:/home' #相对目录
      #方式三-不同service之间挂载,第二行应该写在另一个service底下
      #- 'shareVolumeVariable:/目录一' #在底下定义变量shareVolumeVariable,第一次将赋值,用于在服务间共享目录
      #- 'shareVolumeVariable:/目录二' #将两个目录挂载,参考https://docs.docker.com/compose/compose-file/#volume-configuration-reference
      #方式四-需要指定版本高于v3.2,example:version: '3.7'
      #方式四-1,这种方式还不明白-todo
      # - type: volume
      #   source: static
      #   target: /home
      #   volume:
      #     nocopy: true #是否允许从容器中读取数据
      #方式四-2,本地成功创建目录static1
      # - type: bind
      #   source: ./static1
      #   target: /home

  mongodb: #服务名随便起
    image: mongo:3.4
    container_name: mongo-easymock #重命名启动容器名称
    networks: #指定加入的网路
      - easy-mock

  redis: #服务名随便起
    image: redis:4.0.6
    container_name: redis-easymock #重命名启动容器名称
    #redis-server --appendonly yes 表示开启AOF功能,AOF日志它是一个追加写入的日志文件。与一般数据库的binlog不同的是,AOF文件是可识别的纯文本,它的内容就是一个个的Redis标准命令。
    command: redis-server --appendonly yes
    networks: #指定加入的网路
      - easy-mock

networks: #创建网络
  easy-mock: #新网络名称随便写

# volumes:  #方式三-挂载文件测试
#   shareVolumeVariable:
#   static:

二、在该配置文件下运行命令

  • docker-compose up -d 启动
    • docker-compose -p easymock up -d 自定义projectName,默认是当前目录名
  • docker-compose stop 关闭
  • docker-compose rm -svf 强制关闭并删除容器
  • 测试访问:http://localhost:7300

三、(学习阅读)EasyMock的Dockerfile参考

Dockerfile

FROM ubuntu:16.04

# add user group, user and make user home dir
RUN groupadd --gid 1000 easy-mock && \
    useradd --uid 1000 --gid easy-mock --shell /bin/bash --create-home easy-mock

# set pwd to easy-mock home dir
WORKDIR /home/easy-mock

# install dependencies
RUN apt-get update && \
    apt-get install --no-install-recommends -y \
    build-essential \
    python \
    wget \
    jq \
    git \
    apt-transport-https \
    ca-certificates

# install nodejs
RUN wget http://cdn.npm.taobao.org/dist/node/v8.4.0/node-v8.4.0-linux-x64.tar.gz && \
    tar -xzvf node-v8.4.0-linux-x64.tar.gz && \
    ln -s /home/easy-mock/node-v8.4.0-linux-x64/bin/node /usr/local/bin/node && \
    ln -s /home/easy-mock/node-v8.4.0-linux-x64/bin/npm /usr/local/bin/npm

# download easy-mock source code
USER easy-mock

RUN mkdir easy-mock && \
    wget https://github.com/easy-mock/easy-mock/archive/v1.6.0.tar.gz && \
    tar -xzvf v1.6.0.tar.gz -C easy-mock --strip-components 1

# npm install dependencies and run build
WORKDIR /home/easy-mock/easy-mock

RUN jq '.db = "mongodb://mongodb/easy-mock"' config/default.json > config/tmp.json && \
    mv config/tmp.json config/default.json
RUN jq '.redis = { port: 6379, host: "redis" }' config/default.json > config/tmp.json && \
    mv config/tmp.json config/default.json

RUN npm install && npm run build
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值