技术选型选择了 yapi 作为内部接口管理系统,由于测试环境都部署在 kubernetes 集群中,所以官网提供的docker镜像还需要修改才能使用
同时,还需要启用并配置 LDAP 实现内网统一认证
完成的内容,分享出来
Dockerfile
1 | FROM node:14.4.0-alpine3.12 as builder |
docker-entrypoint.sh
1 |
|
config.json
1 | { |
mongodb
由于线上是购买的云数据库,只在测试时通过docker部署运行了mongodb,命令如下1
2# 启用了权限认证
docker run -d -p 27017:27017 -v /data/yapi-mongo:/data/db --name mongo-server mongo --auth
然后进入容器,添加管理员,yapi所需的db及用户1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29mongo
use admin
# 增加一个超级管理员
db.createUser({
user: "adminname",
pwd: "password",
roles:[
{
role:"userAdminAnyDatabase",
db:"admin"
}
]
})
# 创建yapi的db,名字固定yapi
use yapi
# 为其增加一个用户
db.createUser({
user: "yapi-admin",
pwd: "123456",
roles:[
{
role:"readWrite",
db:"yapi"
}
]
})
LDAP验证
通过修改填充下面的命令来测试ldap服务器搜索制定邮箱
具体命令请参考链接,下面的值请对应config.json的设置1
ldapsearch -x -LLL -H "YAPI_LDAP_SERVER" -D "YAPI_LDAP_BASE_DN" -w "YAPI_LDAP_BIND_PASSWORD" -b"YAPI_LDAP_SEARCH_DN" YAPI_LDAP_EMAIL_KEY=要搜索的邮箱 YAPI_LDAP_USERNAME_KEY
使用注意
- 各项配置请参考官方文档
- DOckerfile编译的镜像,也可用于docker部署允许
- kubernetes部署,要记得设置 启动命令为
/app/docker-entrypoint.sh
- kubernetes部署的配置文件不再赘述,重点在于设置所需的环境变量
- 1.9.2版本为此时最新版,很久不更新了,如果后续版本再更新,dockerfile的部署方式有可能发生变化
- 使用LDAP登录时,不需要数据库中有对应用户,会自动注册生成。同时如果已存在,也可无缝对接使用