如何在docker-compose中为mongo加载.bson集合

fnatzsnv  于 2023-04-20  发布在  Docker
关注(0)|答案(1)|浏览(139)

以下针对Docker和docker-compose.yml的代码无法正常工作,无法将sample_collection.bson加载到docker中
Dockerfile

FROM python:3.8

WORKDIR /salary_data_ggregation

COPY requirements.txt .

RUN pip install -r requirements.txt

COPY . .

CMD ["python", "run.py"]

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
    command: mongoimport --host mongodb --db aggregation --collection sample_collection --file /data/sample_collection.bson

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

我希望在进入MongoDB Compass时看到一个聚合数据库和一个sample_collection

zbsbpyhn

zbsbpyhn1#

如果我理解正确的话,depends_on应该是相反的-mongoimport服务应该等待mongo启动后再尝试导入。此外,主机应该是--host mongo而不是mongodb
我还建议使用docker推荐的方式在mongo中预填充数据,方法是在/docker-entrypoint-initdb.d下挂载一个JS脚本,mongo将执行该脚本。请参阅docker hub中的Initializing a fresh instance

相关问题