2017-11-30 2 views
0

Ich habe folgendes Problem habe: Need mongodb Docker Bild mit einigen Anfangsdaten und Konfiguration zu erstellen, so dass ich zu schreiben begann Dockerfile:Mongo Docker - Dockerfile mit indexCreate

Dockerfile:

FROM mongo:latest 
EXPOSE 27017 
ADD ./scripts /scripts 
RUN mongo PBM /scripts/indexes 

/scripts/Indizes:

db.events.createIndex({'x1':1}, {expireAfterSeconds: 0}) 

Und hier habe ich zum ersten Mal Fehler ist aufgetreten, dass ich nicht zu db verbinden:

Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused 

Irgendwelche Ideen?

SOLUTION

Notwendigkeit ENTRYPOINT gegen RUN zu verwenden, da, wenn die zweite Verwendung db existiert nicht.

Antwort

-1

Grund könnte sein, dass Sie nur innerhalb dockerfile exposeing Port, müssen Sie -p 27017:27017 verwenden, während Bild läuft, aber nicht entfernen EXPOSE port innen Dockerfile,

  • EXPOSE verwendet wird Port zu belichten und
  • in anderen Containern zugreifen können
  • EXPOSE und -p zum Zugangsport in beiden Austragungs m andere Behälter
  • Fehler
+0

Es baut verwendet. – Armatorix

+0

Wo haben Sie erwähnt, dass sein Baufehler? Sie haben deutlich erwähnt, dass "Verbindung mit 127.0.0.1:27017 fehlgeschlagen ist, in (Socket auf Fehler nach Abfrage prüfen), Grund: Verbindung abgelehnt" am Ende. So habe ich für den ersten Fehler geantwortet, den Sie bekommen haben –