2016-08-17 3 views
0

Ich versuche, eine einfache Dockerfile zum Kopieren von Dateien aus dem aktuellen Verzeichnis in den Container zu erstellen, dann führen Sie einen mongorestore-Befehl, um die Daten zu seed. Ich habe viele verschiedene Websites angeschaut und bekomme immer noch den folgenden Fehler.MongoDB Container Dockerfile keine erreichbaren Server

2016-08-17T03: 03: 22,639 + 0000 fehlgeschlagen: Fehler Verbindungsserver auf den db: keine erreichbaren Server
Der Befehl ‚/ bin/sh -c mongorestore --drop/Mongo-Samen/mongo- Samen-data/mongo-dump --host 127.0.0.1:27017' ergab eine nicht-Null-Code: 1

Als ich ‚bash‘ in den Behälter und den mongorestore Befehl mit den gleichen Parametern führen sie es Datenbank auffüllt . Ich bin ratlos, bitte hilf mir.

Unten ist die 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 

Antwort

2

CMD ausgeführt wird, wenn Sie die Container starten. So mongod wird nicht ausgeführt, wenn Docker die letzte RUN Anweisung Ihrer Dockerdatei beim Erstellen des Abbilds ausführt.

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

erstellen und auszuführen: docker build -t foo . && docker run -d --name bar foo

Führen Sie den Befehl mongorestore:

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

Alles funktionierte wie erwartet. Benötigt mongorestore statt mongostore. Ich lerne immer noch die verschiedenen Anwendungen für CMD, ENTRYPOINT, RUN usw. – user3066155

+0

Sorry, das war ein Tippfehler an meinem Ende :) – Martin

Verwandte Themen