Legen Sie das Arbeitsverzeichnis in Docker fest

Legen Sie das Arbeitsverzeichnis in Docker fest

Wenn eines existiert, ist das Arbeitsverzeichnis eines Prozesses in der Datenverarbeitung ein Verzeichnis in einem verknüpften hierarchischen Dateisystem, das für jeden Prozess dynamisch ist. In Docker können wir unser Arbeitsverzeichnis festlegen, indem wir unser Dockerfile bearbeiten und den Schlüssel WORKDIR hinzufügen.

In diesem Artikel wird das Ändern unseres aktuellen und standardmäßigen Arbeitsverzeichnisses in Docker erläutert.

das WORKDIR im Docker

Der Befehl WORKDIR im Dockerfile bestimmt das Arbeitsverzeichnis für alle nachfolgenden Befehle RUN, CMD, ENTRYPOINT, COPY und ADD. Wir können die Anweisung WORKDIR mehrfach in einem Dockerfile verwenden.

Wenn wir einen relativen Pfad angeben, ist dieser relativ zum Pfad der vorherigen WORKDIR-Anweisung.

Zum Beispiel:

WORKDIR /usr
WORKDIR src/serv
RUN sampleserv

Die Ausgabe des letzten sampleserv-Befehls in diesem Dockerfile wäre /usr/src/serv.

Die Anweisung WORKDIR kann Umgebungsvariablen auflösen, die zuvor mit der Anweisung ENV angegeben wurden. Wir können jedoch nur Umgebungsvariablen verwenden, die explizit im Dockerfile festgelegt sind.

ENV DIRPATH=/usr
WORKDIR $DIRPATH/$DIRNAME
RUN sampleserv

Die letzte Ausgabe des sampleserv-Befehls in dieser Docker-Datei wäre /usr/$DIRNAME.

Das Standardarbeitsverzeichnis ist das Stammverzeichnis oder /, falls nicht angegeben. Wenn Sie in Wirklichkeit kein Dockerfile von Grund auf neu erstellen (FROM scratch), hat das von Ihnen verwendete Basis-Image möglicherweise bereits das WORKDIR konfiguriert.

Wir empfehlen daher, Ihr WORKDIR explizit zu setzen, um versehentliche Aktivitäten in unbekannten Ordnern zu verhindern.

Aus Gründen der Übersichtlichkeit und Zuverlässigkeit sollten wir für Ihr WORKDIR immer absolute Pfade verwenden. Außerdem sollten wir WORKDIR verwenden, anstatt Anweisungen wie RUN cd … && sample-code zu erhöhen, die schwer zu lesen, zu beheben und zu warten sind.

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn