You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Compose中加载MongoDB的.bson集合?现有配置加载失败

Docker-Compose数据导入失败问题修复

核心问题

  • 依赖顺序错误:原配置让MongoDB服务依赖数据导入服务,实际必须先启动MongoDB才能执行导入操作
  • 主机名不匹配:mongoimport命令中--host mongodb与服务名mongo不符,容器间无法正常通信
  • 未等待服务就绪:depends_on仅保证容器启动顺序,不确保MongoDB服务完全可用,导致导入时连接失败

修复后的docker-compose.yml

services:
  bot:
    build: .
    depends_on:
      - mongo

  mongoimport:
    image: mongo
    container_name: mongo_import
    volumes:
      - ./bot/database/static_collection/sample_collection.bson:/data/sample_collection.bson
    # 先等待MongoDB服务就绪,再执行导入操作
    command: >
      sh -c "
        until mongosh --host mongo --eval 'db.adminCommand(\"ping\")'; do
          echo '等待MongoDB启动...'
          sleep 2
        done
        mongoimport --host mongo --db aggregation --collection sample_collection --file /data/sample_collection.bson
      "
    depends_on:
      - mongo

  mongo:
    image: mongo
    container_name: mongo_db
    ports:
      - 27017:27017

验证操作

  1. 清理旧环境:执行docker-compose down -v删除所有旧容器和关联数据卷
  2. 启动服务:运行docker-compose up --build
  3. 连接验证:用MongoDB Compass连接mongodb://localhost:27017,检查是否存在aggregation数据库和sample_collection集合

内容的提问来源于stack exchange,提问作者As65

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:32:20