2016-08-17 4 views
0

Я пытаюсь создать легкий файл Docker для копирования файлов из текущего каталога в контейнер, а затем запустите команду mongorestore, чтобы засеять данные. Я просмотрел множество разных сайтов, и я все еще получаю следующую ошибку.MongoDB Container Dockerfile no reachable servers

2016-08-17T03: 03: 22,639 + 0000 Ошибка: Ошибка при подключении к БД сервера: не достижимые серверы
Команда «/ бен/ш -с mongorestore --drop/Монго семян/mongo- семя-данные/монго-свалка --host 127.0.0.1:27017' возвращается ненулевой код: 1

Когда я „баш“ в контейнер и выполнить команду mongorestore с теми же параметрами заселяют базы данных , Я в недоумении, пожалуйста, помогите.

Ниже Dockerfile

FROM mongo 

COPY . /mongo-seed 
EXPOSE 27017 


CMD ["mongod"] 
RUN mongorestore --drop /mongo-seed/mongo-seed-data/mongo-dump --host 127.0.0.1:27017 

ответ

2

CMD запускается при запуске контейнера. Так что mongod не работает, когда docker выполняет последнюю команду RUN вашего файла docker при создании изображения.

FROM mongo 
COPY . /mongo-seed 
# EXPOSE 27017 //not necessary, the mongo base image already has that instruction 
ENTRYPOINT mongod 

Построить и запустить: docker build -t foo . && docker run -d --name bar foo

Выполните команду mongorestore:

docker exec bar mongorestore --drop ... 
+0

Все работало, как ожидалось. Необходимо использовать mongorestore вместо mongostore. Я все еще изучаю различные применения для CMD, ENTRYPOINT, RUN и т. Д. – user3066155

+0

К сожалению, это была опечатка на моем конце :) – Martin