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

应有输出,表示宿主机正在监听。


🌐 访问地址

👉 http://你的服务器IP:3000

  • 账号admin@example.com
  • 密码4Gr8YPXc0d67eyphnjQa

🛡️ 建议后续操作

  1. 首次登录后修改密码:进入「个人设置」→ 修改密码。

  2. 配置备份脚本(可选):

    # 示例:每日备份 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
    
posted @ 2025-10-23 10:26  完颜振江  阅读(6)  评论(0)    收藏  举报