docker yapi安裝

肖祥發表於2024-08-18

概述

YApi 是高效、易用、功能強大的 api 管理平臺,旨在為開發、產品、測試人員提供更優雅的介面管理服務。可以幫助開發者輕鬆建立、釋出、維護 API,YApi 還為使用者提供了優秀的互動體驗,開發人員只需利用平臺提供的介面資料寫入工具以及簡單的點選操作就可以實現介面的管理。

docker安裝,參考官方文件:https://hub.docker.com/r/yapipro/yapi

資料庫準備 MongoDB

Docker 容器之間網路互通需要使用網橋,建立一個網橋yapi

docker network create yapi

YAPI 的資料庫是 MongoDB,建立持久化目錄

mkdir -p /data/mongo/data

拉取最新映象

docker pull mongo:latest

啟動 MongoDB,其中 -e 指定 MONGO_INITDB_ROOT_USERNAME 為 MongoDB 的 ROOT 使用者名稱,MONGO_INITDB_ROOT_PASSWORD 為 MongoDB 的 ROOT 使用者密碼

docker run -d \
  --name mongodb \
  --restart always \
  --net=yapi \
  -p 27017:27017 \
  -v /data/mongo/data:/data/db \
  -e MONGO_INITDB_DATABASE=yapi \
  -e MONGO_INITDB_ROOT_USERNAME=yapipro \
  -e MONGO_INITDB_ROOT_PASSWORD=yapipro1024 \
  mongo

進入 MongoDB 容器

docker exec -it mongodb /bin/bash

進入 mongo cli

mongosh localhost:27017

如果出現以下提示,表示進入成功

Current Mongosh Log ID:	66c1bf49c2a529ef68149f47
Connecting to:		mongodb://localhost:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.10
Using MongoDB:		7.0.12
Using Mongosh:		2.2.10

For mongosh info see: https://docs.mongodb.com/mongodb-shell/

test> 

進入 MongoDB 的 mongo cli 後,執行以下語句進行初始化庫表

use admin;
db.auth("yapipro", "yapipro1024");
# 建立 yapi 資料庫
use yapi;
# 建立給 yapi 使用的賬號和密碼,限制許可權
db.createUser({
  user: 'yapi',
  pwd: 'yapi123456',
  roles: [
 { role: "dbAdmin", db: "yapi" },
 { role: "readWrite", db: "yapi" }
  ]
});
# 退出 Mongo Cli
exit
# 退出容器
exit

啟動 YAPI

建立配置檔案

mkdir -p /data/yapi/conf
vi /data/yapi/conf/config.json

 {
   "port": "3000",
   "adminAccount": "hexiaohei1024@gmail.com",
   "timeout":120000,
   "db": {
     "servername": "mongo",
     "DATABASE": "yapi",
     "port": 27017,
     "user": "yapi",
     "pass": "yapi123456",
     "authSource": ""
   },
   "mail": {
     "enable": true,
     "host": "smtp.gmail.com",
     "port": 465,
     "from": "*",
     "auth": {
       "user": "hexiaohei1024@gmail.com",
       "pass": "xxx"
     }
   }
 }

拉取最新映象

docker pull yapipro/yapi:latest

初始化資料庫表

docker run -d --rm \
  --name yapi-init \
  --link mongodb:mongo \
  --net=yapi \
  -v /data/yapi/conf/config.json:/yapi/config.json \
  yapipro/yapi \
  server/install.js

啟動yapi

docker run -d \
   --name yapi \
   --link mongodb:mongo \
   --restart always \
   --net=yapi \
   -p 3000:3000 \
   -v /data/yapi/conf/config.json:/yapi/config.json \
   yapipro/yapi \
   server/app.js

檢視yapi日誌

docker logs -f yapi

出現以下資訊,表示啟動成功

log: -------------------------------------swaggerSyncUtils constructor-----------------------------------------------
log: 服務已啟動,請開啟下面連結訪問: 
http://127.0.0.1:3000/
log: mongodb load success...
(node:1) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated

訪問

http://192.168.20.131:3000/

點選登入

初始化管理員賬號在上面的 config.json 配置中

使用者名稱:hexiaohei1024@gmail.com

初始密碼:yapi.pro

可以登入後進入個人中心修改

登入成功,效果如下:

相關文章