dockercompose部署yapi
原创
docker-compose部署yapi
✅ 完整 docker-compose.yml(推荐直接使用)
# cat docker-compose.yml
version: '3.8'
services:
mongo:
image: mongo:4.4
container_name: yapi-mongo
restart: always
volumes:
- ./data/mongo/db:/data/db
environment:
MONGO_INITDB_ROOT_USERNAME: yapi
MONGO_INITDB_ROOT_PASSWORD: yapi_password
networks:
- yapi-network
yapi:
image: jayfong/yapi:latest
container_name: yapi-server
restart: always
depends_on:
- mongo
ports:
- "3000:3000"
volumes:
- ./data/yapi/plugins:/yapi/plugins
- ./data/yapi/logs:/yapi/logs
- ./data/yapi/certs:/yapi/certs
# config.json
- ./config.json:/yapi/config.json
environment:
- YAPI_ADMIN_ACCOUNT=admin@example.com
- YAPI_ADMIN_PASSWORD=wanyanzhenjiang
- YAPI_CLOSE_REGISTER=true
- YAPI_DB_SERVERNAME=mongo
- YAPI_DB_PORT=27017
- YAPI_DB_NAME=yapi
- YAPI_DB_USER=yapi
- YAPI_DB_PASS=yapi_password
- YAPI_DB_AUTH_SOURCE=admin
- YAPI_MAIL_ENABLE=false
- YAPI_SERVER_HOST=http://localhost:3000
networks:
- yapi-network
networks:
yapi-network:
driver: bridge
🚀 部署命令(一键复制)
# 1. 创建项目目录并进入
mkdir -p /opt/yapi && cd /opt/yapi
# 2. 创建 docker-compose.yml 文件
# 3. 创建config.json
cd /opt/yapi
cat > config.json << 'EOF'
{
"port": 3000,
"adminAccount": "admin@example.com",
"adminPassword": "wanyanzhenjiang",
"closeRegister": true,
"db": {
"servername": "mongo",
"port": 27017,
"user": "yapi",
"pass": "yapi_password",
"authSource": "admin"
},
"mail": {
"enable": false,
"auth": {}
},
"ldapLogin": {
"enable": true,
"server": "ldap://172.19.220.168:389",
"baseDn": "cn=admin,dc=xiaoma,dc=cn",
"bindPassword": "xxxxxxxxxxxxx",
"searchDn": "ou=People,dc=xiaoma,dc=cn",
"searchStandard": "uid",
"usernameKey": "description"
}
}
EOF
# 4. 创建所有持久化目录
mkdir -p ./data/{mongo/db,yapi/plugins,yapi/logs,yapi/certs}
# 5. 删除旧容器和数据(首次部署或重置时执行)
docker-compose down
rm -rf ./data/mongo/db/* # 清空旧数据库(确保是首次或已备份)
# 6. 启动服务
docker-compose up -d
# 7. 查看初始化日志(耐心等待 1-2 分钟)
docker logs -f yapi-server
✅ 成功标志
当看到以下输出时,表示成功:
初始化管理员账号成功: admin@example.com
YApi 初始化完成!
Server running at http://localhost:3000
按 Ctrl+C 退出日志。
🔍 验证端口监听
netstat -tulnp | grep 3000
应有输出,表示宿主机正在监听。
🌐 访问地址
- 账号:
admin@example.com - 密码:
4Gr8YPXc0d67eyphnjQa
🛡️ 建议后续操作
-
首次登录后修改密码:进入「个人设置」→ 修改密码。
-
配置备份脚本(可选):
# 示例:每日备份 MongoDB 0 2 * * * /usr/bin/docker exec yapi-mongo mongodump -u yapi -p yapi_password --authenticationDatabase admin --gzip --archive > /opt/yapi/backup/yapi_$(date +\%F).gz

浙公网安备 33010602011771号