Yapi Docker 部署


参考 https://github.com/Ryan-Miao/docker-yapi , 并使用该代码的脚本构建yapi image。

部署mongodb

docker run  \
--name mongod \
-p 27017:27017  \
-v /data/opt/mongodb/data/configdb:/data/configdb/ \
-v /data/opt/mongodb/data/db/:/data/db/ \
--net tools-net --ip 172.18.0.2 \
-d mongo:4.0 --auth

mongodb如果中途切换版本的话可能会因为不兼容无法读写数据,主要看一下启动日志

初始化数据库

docker exec -it mongod mongo admin
>db.createUser({ user: 'admin', pwd: 'admin123456', roles: [ { role: "root", db: "admin" } ] });

验证授权

>db.auth("admin", "admin123456")

返回1表示授权成功,0表示失败

创建yapi数据库用户

db.createUser({ 
  user: 'yapi', 
  pwd: 'yapi123456', 
  roles: [ 
    { role: "dbAdmin", db: "yapi" },
    { role: "readWrite", db: "yapi" } 
  ]     
});

部署yapi

构建yapi docker image

https://blog.csdn.net/weixin_33757609/article/details/91414542

##这里选的版本号是1.9.2
sh build.sh 1.9.2 

注意config.json的数据库连接配置跟上面的用户名密码一致,ldap登录也在这里加,参考官方文档 https://hellosean1025.github.io/yapi/devops/index.html

{
   "port": "3001",
   "adminAccount": "admin@admin.com", // 这里必须是个带@的邮箱方式,否则不能启动
   "db": {
      "servername": "172.18.0.2",
      "DATABASE": "yapi",
      "port": "27017",
      "user": "yapi",
      "pass": "yapi123456",
      "authSource":"admin"
   },
   "mail": {
      "enable": false,
      "host": "smtp.163.com",
      "port": 465,
      "from": "***@163.com",
      "auth": {
         "user": "***@163.com",
         "pass": "*****"
      }
   },
   "ldapLogin": {
      "enable": true,
      "server": "ldap://l-ldapt1.com",
      "baseDn": "CN=Admin,CN=Users,DC=test,DC=com",
      "bindPassword": "password123", // 可不填
      "searchDn": "OU=UserContainer,DC=test,DC=com",
      "searchStandard": "&(objectClass=person)(uid=%s)" // 使用uid搜索
   },
   "closeRegister": true // 关闭注册
}

初始化并启动

docker run -d -p 3001:3001 --name yapi yapi --initdb

或者直接启动

docker run -d -p 3001:3001 --name yapi yapi

启动成功后访问 http://127.0.0.1:3001/

接入ldap登录

修改yapi 的 config.json文件

 "ldapLogin": {
   "enable": true,
   "server": "ldap://abc.xxx.com",
   "baseDn": "ou=people,dc=xx,dc=xxx,dc=com",
   "bindPassword": "",
   "searchDn": "",
   "searchStandard": ""
 },
 "closeRegister": true

顺便搭一个adminMongo用来管理mongodb

docker run  \
--name mongod \
-p 1234:1234  \
-v /config/app.json:/app/user/config/app.json
--net tools-net --ip 172.18.0.2 \
-d mrvautin/adminmongo

注意 app.json的配置,否则可能无法启动

{
  "app": {
    "host": "0.0.0.0",       //IP(注意这里的配置是0.0.0.0,不是服务器IP,在linux不添加此配置,项目无法启动)
    "port": 1234,             //端口
    "username": "admin",      //用户名,可不填
    "password": "admin123456",  //密码,可不填
    "locale": "en",           //语言,中文zh-cn,可不填
    "context": "dbApp",       //路由配置:例如:http://0.0.0.0:1234/dbApp,可不填
    "monitoring": true        //是否定期运行监视,可不填
    }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM