Docker Compose 部署 Yapi(连接本地MongoDB)
我给你准备了直接可用 的 docker-compose.yml 配置,完全适配你本地的 MongoDB 环境:
- 本地MongoDB端口:27017
- 账号:admin
- 密码:admin123456
- 已配置外部访问权限
一、核心说明
- host.docker.internal :Docker 容器访问本地主机的固定地址(Windows/Mac 自动生效,Linux 需手动替换)
- Yapi 默认管理员账号:
admin@admin.com,密码:ymfe.org(部署后可修改) - 对外端口:
3000,访问地址:http://localhost:3000
二、完整 docker-compose.yml
新建一个空文件夹,在里面创建 docker-compose.yml,复制以下内容:
yaml
services:
yapi:
image: yapipro/yapi:latest
container_name: yapi
restart: always
ports:
- "3000:3000"
environment:
# 数据库配置(连接本地MongoDB)
- DB_SERVER=host.docker.internal
- DB_PORT=27017
- DB_NAME=yapi
- DB_USER=admin
- DB_PASS=admin123456
# Yapi 管理员账号
- YAPI_ADMIN_ACCOUNT=admin@admin.com
- YAPI_ADMIN_PASSWORD=ymfe.org
# 关闭注册(可选,开启则注释掉)
- YAPI_CLOSE_REGISTER=true
depends_on:
# 依赖本地MongoDB,无需启动容器版Mongo
- wait-for-mongo
# 等待本地MongoDB就绪后再启动Yapi
wait-for-mongo:
image: waisbrot/wait-for
container_name: wait-for-mongo
command: host.docker.internal:27017 -t 30
三、Linux 系统特殊修改
如果你是 Linux 系统 ,必须把配置里的 host.docker.internal 替换为本地真实IP (例如 192.168.1.100):
yaml
# Linux 替换后
- DB_SERVER=192.168.1.100 # 你的本机局域网IP
查看本机IP命令:
bash
ip addr
四、一键启动命令
在 docker-compose.yml 所在目录执行:
bash
# 后台启动
docker compose up -d
# 查看启动日志(确认是否成功)
docker compose logs -f yapi
看到如下日志代表启动成功:
log: 服务启动中, 本次启动端口:3000
log: 初始化管理员账号成功...
log: 启动完成!
五、访问与使用
- 访问地址:http://localhost:3000
- 管理员账号:
admin@admin.com - 管理员密码:
ymfe.org
六、常见问题排查
1. 连接不上本地MongoDB
-
确认 MongoDB 配置文件
mongod.conf中:yamlnet: bindIp: 0.0.0.0 # 允许所有IP访问 -
重启 MongoDB 服务
-
确认防火墙放行 27017 端口
2. 账号密码认证失败
-
确认 MongoDB 中
admin用户拥有yapi库的读写权限 -
执行命令(进入Mongo shell):
bashuse admin db.auth("admin","admin123456") use yapi db.createUser({user:"admin",pwd:"admin123456",roles:["readWrite"]})
3. 停止/卸载 Yapi
bash
# 停止
docker compose down
# 彻底删除(保留数据)
docker compose down -v
总结
- 配置已适配你本地 MongoDB(账号admin/密码admin123456/端口27017)
- Windows/Mac 直接用,Linux 需改成本机IP
- 一键启动:
docker compose up -d - 访问地址:http://localhost:3000