Dockerfile Syntax¶
Dockerfile Direktiven¶
Die wichtigsten Schlüsselwörte für ein Dockerfile als Tabelle und mit ein paar folgenden Anmerkungen zum Verständnis.
Schlüsselwort |
Bedeutung |
|---|---|
ADD |
kopiert Dateien in das Dateisystem des Images |
COPY |
kopiert Dateien aus Projekverzeichnis in das Image Scheint wie ADD - Erläuterungen s.u. |
CMD |
führt Kommando beim Start des Containers aus |
ENTRYPOINT |
führt Kommando beim Start des Containers aus Scheint wie CMD - Erläuterungen s.u. |
ENV |
setzt eine Umgebungsvariable |
EXPOSE |
gibt die aktiven Ports an |
FROM |
gibt das Basis-Image an |
LABEL |
legt Zeichenkette fest |
RUN |
führt das Kommando aus |
USER |
Account für RUN, CMD und ENTRYPOINT |
VOLUME |
gibt Volume-Dirs an |
WORKDIR |
Arbeitsverzeichnis für RUN, CMD und ENTRYPOINT |
Erläuterungen:
Analyse / Erläuterungen zu ADD vs. COPY und CMD vs. ENTRYPOINT:
ADD vs. COPY¶
Die Direktiven scheinen ja dasselbe zu tun, aber ADD kann…
… auch mit URL umgehen
… auch (wie COPY) Verzeichnisinhalte komplett kopieren
… mit TAR-Archiven arbeiten/entpacken (gzip, bzip2, xz)
Beide können mit –chown=user:group Parameter umgehen.
In Kürze: COPY nur für einfaches Kopieren einer lokalen Datei.
CMD vs. ENTRYPOINT¶
Feinheiten der Startkommandos für Container
Wenn man Container mit mit docker run Komandos anfügt, dann …
… wird bei CMD das angefügte Kommando anstelle von CMD ausgeführt
… wird bei ENTRYPOINT das Kommando hinzugefügt