Skip to content

Ryan-Miao/docker-yapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YApi Docker镜像

YApi: https://github.com/YMFE/yapi/releases

制作本地的yapi docker镜像, docker-compose一键维护和部署.

How

  1. 初始化db, 开启自定义配置
git clone https://github.com/Ryan-Miao/docker-yapi.git
cd docker-yapi
docker-compose up

打开 localhost:9090

  • 默认部署路径为/my-yapi(需要修改docker-compose.yml才可以更改)
  • 修改管理员邮箱 [email protected] (随意, 修改为自己的邮箱)
  • 修改数据库地址为 mongo 或者修改为自己的mongo实例 (docker-compose配置的mongo服务名称叫mongo)
  • 打开数据库认证
  • 输入数据库用户名: yapi(mongo配置的用户名, 见mongo-conf/init-mongo.js)
  • 输入密码: yapi123456(mongo配置的密码, 见mongo-conf/init-mongo.js)

点击开始部署.

  1. 部署完毕后, 修改docker-compose.yml 启用
  yapi:
    build:
      context: ./
      dockerfile: Dockerfile
    image: yapi
    # 第一次启动使用
    # command: "yapi server"
    # 之后使用下面的命令
    command: "node /my-yapi/vendors/server/app.js"

重启服务:

docker-compose up

访问 localhost:3000

  • 输入用户名[email protected](自己输入的管理员邮箱)
  • 输入密码ymfe.org(默认的初始化密码, 之后可以修改)

然后可以导入一个swagger的接口数据试试:

  1. 后台启动

前台启动确认没问题后, 直接

docker-compose stop或者contrl+C
docker-compose up -d

数据备份

所有数据都在mongo中, 理论上建议使用自己搭建的mongo实例, 这里docker的mongo也可以使用, 只要备份本mongo数据即可.

可以使用mongodb的备份方式, 也可以直接备份mongo/data.

版本升级

可以看出, 只要重新找个机器部署一遍, 然后导入mongo数据即可.

一些配置

部署路径

容器采用的node:12-alpine 这个镜像, yapi部署目录默认为my-yapi. 这里已经映射到本地磁盘, 也可以自己挂载想要的数据盘.

在docker-compose中配置了, 本地目录映射到容器目录my-yapi

    volumes: 
        - ./my-yapi:/my-yapi

Mongo配置

本方案直接使用docker-compose的mongo. 定义了初始化脚本init-mongo.js. 修改即可修改账号和密码.

插件等配置

已经把yapi部署文件给映射到磁盘了, 该怎么安装就怎么安装.

注意yapi目前处于无人维护状态,源码有一些问题,直接下载安装插件可能失败,具体见 https://www.cnblogs.com/woshimrf/p/13797749.html#_caption_1

.
├── doc
│   ├── init-2.jpg
│   └── init.jpg
├── docker-compose.yml
├── Dockerfile
├── mongo
│   ├── data
│   │   └── db
│   └── etc
├── mongo-conf
│   └── init-mongo.js
├── my-yapi
│   ├── config.json
│   ├── init.lock
│   ├── log
│   │   └── 2020-6.log
│   └── vendors
│       ├── aa.js
│       ├── CHANGELOG.md
│       ├── client
│       ├── common
│       ├── config_example.json
│       ├── exts
│       ├── LICENSE
│       ├── node_modules
│       ├── nodemon.json
│       ├── npm-publish.js
│       ├── package.json
│       ├── package-lock.json
│       ├── plugin.json
│       ├── README.md
│       ├── server
│       ├── static
│       ├── webpack.alias.js
│       ├── yapi-base-flow.jpg
│       └── ykit.config.js
├── readme.md
└── repositories