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
?
Ä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
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
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 .
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.
Wenn Sie den Autobuilder auf hub.docker.com verwenden möchten, muss die Variable Dockerfile
sein. Also da :)
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.
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:
Dockerfile
Dockerfile.aws
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.