Centos下,Docker部署Yapi接口管理平臺

  前言介紹

   Yapi 由 YMFE 開源,旨在爲開發、產品、測試人員提供更優雅的接口管理服務,能夠幫助開發者輕鬆建立、發佈、維護 API。html

項目地址:https://github.com/YMFE/yapi

官網:https://yapi.ymfe.org/,Yapi具備如下功能特性;node

  • 權限管理
    扁平化權限設計,即保證了大型企業級項目的管理,又保證了易用性linux

  • 可視化接口管理
    基於 websocket 的多人協做接口編輯功能和類 postman 測試工具,讓多人協做成倍提高開發效率git

  • Mock Server
    易用的 Mock Server,MockServer 除支持普通的隨機 mock 外,還增長了 Mock 指望功能,根據設置的請求過濾規則,返回指望數據github

  • 自動化測試(這個我比較關注)
    完善的接口自動化測試,保證數據的正確性,支持對 Response 斷言web

  • 數據導入
    接口支持導入 swagger, postman, har 數據格式,方便遷移舊項目mongodb

  • 插件機制

   強大的插件機制,知足各種業務需求docker

一,使用Docker建立Yapi容器

1,先安裝docker,參考我另外一篇文章,可用docker version查看docker版本數據庫

複製代碼
[root@localhost ~]# docker version
Client:
 Version:    17.12.1-ce
 API version:    1.35
 Go version:    go1.9.4
 Git commit:    7390fc6
 Built:    Tue Feb 27 22:15:20 2018
 OS/Arch:    linux/amd64

Server:
 Engine:
  Version:    17.12.1-ce
  API version:    1.35 (minimum version 1.12)
  Go version:    go1.9.4
  Git commit:    7390fc6
  Built:    Tue Feb 27 22:17:54 2018
  OS/Arch:    linux/amd64
  Experimental:    false
複製代碼

2,從倉庫中拉取Yapi鏡像,docker pull命令(拉取鏡像(鏡像地址https://hub.docker.com/r/silsuer/yapi/))ubuntu

複製代碼
[root@localhost ~]# docker pull silsuer/yapi
Using default tag: latest
latest: Pulling from silsuer/yapi
1be7f2b886e8: Pull complete 
6fbc4a21b806: Pull complete 
c71a6f8e1378: Pull complete 
...
複製代碼

3,使用鏡像實例並運行容器,--name是指定容器名,-dit是指後臺運行容器,並返回容器id(或者-it,指在當前窗口以僞終端進入容器,這裏若是隻用-d,容器啓動後就會立刻中止),-p是指端口映射(主機端口:容器端口,27017是數據庫端口,9090是yapi初始化配置端口,3000是yapi實際運行端口

[root@localhost ~]# docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash
3d3a94296f11c725ff091d52acb2e2a4bdb19d55354a0725f1e8b742c0a93ce7     

4,查看當前正運行的容器,docker ps

複製代碼
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                                                      NAMES
3d3a94296f11        silsuer/yapi        "bash"              25 minutes ago      Up About a minute   0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:27017->27017/tcp   yapi
複製代碼

5,進入容器,有兩種方式:docker attach yapi (exit退出容器後,容器中止運行)或者docker exec -it yapi bash(exit退出容器後,容器依舊運行)

[root@localhost ~]# docker attach yapi
root@3d3a94296f11:/#                  -------(這就是僞終端,進入容器後鍵入操做才顯示)

二,容器中部署安裝Yapi(如下命令須要進入到容器中,進入容器命令:docker attach yapi 或docker exec -it yapi bash 或docker exec -it 容器id bash

1,啓動MogoDB,Yapi部署須要數據庫依賴

root@3d3a94296f11:/# service mongodb start
 * Starting database mongodb                                           [ OK ] 

2,由於Yapi須要git支持,先升級git源(由於若是不先安裝git直接部署Yapi會出現錯誤)

root@3d3a94296f11:/# apt-get update
Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]
Get:3 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release [3457 B]
...

3,安裝git,中途須要輸入y贊成安裝

複製代碼
root@3d3a94296f11:/# apt-get install git
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
...
複製代碼

4,查看升級後的get版本

root@3d3a94296f11:/# git --version
git version 2.7.4

5,啓動Yapi服務進行部署配置,有以下bash提示

root@3d3a94296f11:/# yapi server
在瀏覽器打開 http://0.0.0.0:9090 訪問。非本地服務器,請將 0.0.0.0 替換成指定的域名或ip 
/bin/sh: 1: xdg-open: not found                     

啓動後,會在bash中提示你訪問localhost:9090或者http://0.0.0.0:9090完成Yapi的初始化配置(記得在阿里雲控制檯安全組打開9090端口或者其餘雲平臺安全組中放開9090端口)

 我這裏是由於配置到了阿里雲服務器上,因此訪問http://0.0.0.0:9090是不可能成功的,我這裏須要訪問http://IP:9090才能成功顯示

 6,使用本地瀏覽器打開:http://IP:9090或者http://0.0.0.0:9090,如

  

 

   7,配置完成後,點擊開始部署,以下

 

   打開後的界面就是這樣,填寫好對應的信息,點擊開始部署。發生報錯,就根據錯誤信息查找緣由。我在安裝的時候有一個報錯

Error:  (node:952) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.

    這個錯誤是由於mongodb版本的問題,其中的服務在mongo3的時候就已經棄用了,後來和你們交流了下,不用管,能夠正常使用,也確實是的。這個問題官方已經在最新版裏面修復了,因此之後安裝也不會出現這個報錯了(我安裝的時候是1.4.1)。

8,部署成功後,查看命令窗口,顯示以下

複製代碼
 ...

 added 345 packages in 53.839s

依賴庫安裝完成,正在初始化數據庫mongodb...
 
> yapi@1.3.22 install-server /my-yapi/vendors
>  node server/install.js

 log: mongodb load success...

 初始化管理員帳號成功,帳號名:"admin@admin.com",密碼:"ymfe.org"

部署成功,請切換到部署目錄,輸入: "node vendors/server/app.js" 指令啓動服務器, 而後在瀏覽器打開 http://127.0.0.1:3000或者http://ip:3000(放開3000端口) 訪問
複製代碼

 

9,根據上圖提示,記住帳戶名和密碼,ctrl+c中止安裝程序並切換到部署目錄(/my-yapi/),輸入: "node vendors/server/app.js" 指令。

root@3d3a94296f11:/# cd /my-yapi/
root@3d3a94296f11:/my-yapi# node vendors/server/app.js
log: the server is start at 127.0.0.1:3000
log: mongodb load success...

 

 

10,瀏覽器打開上面地址:http://ip:3000或者http://127.0.0.1:3000,(安全組放開3000端口)使用上面記住的帳號密碼就能夠登陸了,以下圖

 

 

--------------注意1:若是還要使用容器中的命令窗口,先按ctrl+c能夠結束yapi進程,再執行nohup node /my-yapi/vendors/server/app.js 2>&1 & 在後臺運行yapi,以下

複製代碼
root@3d3a94296f11:/my-yapi# node vendors/server/app.js
log: the server is start at 127.0.0.1:3000
log: mongodb load success...
^C
root@3d3a94296f11:/my-yapi# nohup node /my-yapi/vendors/server/app.js 2>&1 &
[1] 91
root@3d3a94296f11:/my-yapi# nohup: ignoring input and appending output to 'nohup.out'

root@3d3a94296f11:/my-yapi# 
複製代碼

--------------注意2:若是想yapi後臺運行並退出容器,開始是以docker exec -ti yapi bash方式進入的容器,輸入exit就能夠了,以docker attach方式進入的容器,按ctrl+p+q(你沒看錯,就是三個鍵同時按),出現下圖所示就能夠了

root@3d3a94296f11:/# read escape sequence 
[root@localhost ~]# 
以下圖顯示:

 登陸後的管理界面以下圖:

相關文章
相關標籤/搜索