2017-08-16 4 views
2

Das Docker-Image (Windows-basiert) enthält ein Anwendungsverzeichnis unter C:\App. In diesem Verzeichnis befinden sich mehrere Unterordner und Dateien, einschließlich einer Stapeldatei mit der Bezeichnung process.bat. Die Dockerfile (verwendet, um das Bild zu bauen) endet wie folgt aus:So geben Sie das Arbeitsverzeichnis für ENTRYPOINT in Dockerfile an

ENTRYPOINT [ "C:\\App\\process.bat" ] 

Als ich dieses Bild mit dem Befehl instanziiert: docker run company/app, die Batch-Datei ausgeführt wird, aber es funktioniert nicht an dem Punkt, wo andere Dateien unter C:\App referenziert werden. Im Wesentlichen ist das Arbeitsverzeichnis immer noch C:\ vom Einstiegspunkt des Docker-Containers.

Gibt es eine Möglichkeit, das Arbeitsverzeichnis innerhalb der Dockerfile zu setzen? Ein paar Alternativen existieren:

  • -w C:\App In dem Docker Laufe
  • In der Batch-Datei, ich cd /D C:\App

eine Linie am Anfang hinzufügen können, aber ist es eine Möglichkeit, die Arbeits angeben Verzeichnis in der Dockerfile?

Antwort

4

WORKDIR /App ist ein Befehl, den Sie in Ihrer Dockerdatei verwenden können, um das Arbeitsverzeichnis zu ändern.

1

Wenn /App ein bereitgestelltes Volume dann sollten Sie VOLUME /App vor WORKDIR angeben es mit ENTRYPOINT zu verwenden, es ist sonst nicht durch ENTRYPOINT zu sehen:

VOLUME ["/App"] 
WORKDIR /App 
ENTRYPOINT ["sh", "start.sh"] 

Welche start.sh innerhalb /App Verzeichnis ist.

Verwandte Themen