参考 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 //是否定期运行监视,可不填
}
}

最新文章

  1. 使用 Graphviz 画拓扑图
  2. SVN图形管理工具-Submint
  3. ipython的安装
  4. sqlmap笔记
  5. 股票交易(洛谷U6084)
  6. 第K 小数
  7. Codis 集群搭建
  8. iOS应用间的跳转和传值
  9. Linux下getopt()函数的简单使用
  10. unity基本操作二
  11. 解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json
  12. 通过maven创建自己的archetype
  13. C#向文件写、读数据
  14. __declspec(novtable)keyword
  15. python中try except处理程序异常的三种常用方法
  16. 基于MySQL的Activiti6引擎创建
  17. .gz解压
  18. 【Devops】【docker】【CI/CD】Jenkins源代码管理 添加gitlab项目地址,报错Failed to connect to repository : Error performing command: ls-remote -h git@192.168.92.130:8090/root/swapping.git HEAD
  19. request.getRequestURI() 、request.getRequestURL() 、request.getContextPath()、request.getServletPath()区别
  20. Unity3d之Hash&Slash学习笔记(一)--角色属性类的构架

热门文章

  1. 【Matlab】简单的滑模控制程序及Simulink仿真
  2. python大佬养成计划----基于flask_sqlalchemy的网页显示数据库信息
  3. ES6-11学习笔记--let
  4. uni-app中 未收藏和已收藏功能展示
  5. C++---继承和派生
  6. 基于Nginx实现反向代理
  7. 深度学习教程 | Seq2Seq序列模型和注意力机制
  8. python黑帽子(第三章)
  9. js 轮播图 (原生)
  10. 论文解读(GCC)《Graph Contrastive Clustering》