wake-up-neo.com

Wie benenne ich Dockerfiles?

Ich weiß nicht, wie ich Dockerfiles benennen soll. Viele auf GitHub verwenden Dockerfile ohne Dateierweiterung. Gebe ich ihnen einen Namen und eine Erweiterung? wenn ja, was? Oder nenne ich sie einfach Dockerfile?

64

Ändern Sie nicht den Namen der Docker-Datei, wenn Sie den Autobuilder unter hub.docker.com verwenden möchten. Verwenden Sie keine Erweiterung für Docker-Dateien, lassen Sie sie leer. Dateiname sollte nur lauten: (überhaupt keine Erweiterung)

Dockerfile
72
tk_

Auf vscode verwende ich dev.Dockerfile und es wird immer noch korrekt erkannt.

Meine Strategie zum Benennen mehrerer Docker-Dateien im selben Ordner lautet daher: 

purpose.Dockerfile

29
Sahil Ahuja

Ich denke, Sie sollten ein Verzeichnis pro Container mit einer Dockerfile (keine Erweiterung) darin haben. Zum Beispiel:

  /db/Dockerfile
  /web/Dockerfile
  /api/Dockerfile

Wenn Sie nur den Verzeichnisnamen verwenden, findet Docker die Docker-Datei. z.B:

docker build -f ./db .
23
garryp

Es scheint, dass dies wahr ist, aber persönlich scheint es mir schlechtes Design zu sein. Sicher, einen Standardnamen (mit Erweiterung) haben, aber andere Namen zulassen und den Namen der Docker-Datei für Befehle angeben.

Eine Erweiterung zu haben ist auch schön, weil man damit Anwendungen mit diesem Erweiterungstyp verbinden kann. Wenn ich in MacOSX auf eine Docker-Datei klicke, wird sie als Unix-Programm behandelt und versucht, sie auszuführen.

Wenn Docker-Dateien eine Erweiterung haben, könnte ich dem Betriebssystem mitteilen, dass es sie mit einer bestimmten Anwendung starten soll, z. meine Texteditoranwendung. Ich bin mir nicht sicher, aber das aktuelle Verhalten hängt möglicherweise auch mit den Dateiberechtigungen zusammen.

14
Ashley Aitken

Wenn Sie den Autobuilder auf hub.docker.com verwenden möchten, muss die Variable Dockerfile sein. Also da :)

14

Gebe ich ihnen einen Namen und eine Erweiterung? wenn ja, was?

Sie können Ihre Dockerfiles beliebig benennen. Der Standarddateiname ist Dockerfile (ohne Erweiterung). Die Verwendung des Standardnamens kann verschiedene Aufgaben erleichtern, während Sie mit Containern arbeiten.

Abhängig von Ihren spezifischen Anforderungen möchten Sie möglicherweise den Dateinamen ändern. Wenn Sie für mehrere Architekturen erstellen, möchten Sie möglicherweise eine Erweiterung hinzufügen, die die Architektur angibt, wie das Team resin.io für den HAProxy-Container ihr Multi-Container-Beispiel ARM ausgeführt hat :

Dockerfile.aarch64
Dockerfile.AMD64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi

In dem bereitgestellten Beispiel wird jede Docker-Datei aus einem anderen architekturspezifischen Upstream-Image erstellt. Die spezifische Docker-Datei, die für den Build verwendet werden soll, kann mit der Option --file, -f angegeben werden, wenn der Container über die Befehlszeile erstellt wird.

6
Josh Habdas

Dockerfile ist gut, wenn Sie nur eine Docker-Datei (pro Verzeichnis) haben. Sie können den gewünschten Standard verwenden, wenn Sie mehrere Docker-Dateien in demselben Verzeichnis -.__ benötigen. wenn Sie einen guten Grund haben. In einem aktuellen Projekt gab es AWS-Docker-Dateien und lokale Entwicklungsumgebungsdateien, da sich die Umgebungen ausreichend unterschieden:

DockerfileDockerfile.aws

3
ktamlyn

Ich habe zwei Dockerfiles im selben Verzeichnis erstellt,

# vi one.Dockerfile
# vi two.Dockerfile

um beide Dockerfiles zu erstellen,

# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile

Hinweis: Sie sollten sich im aktuellen Arbeitsverzeichnis befinden.

0