Ich bin mir nicht sicher, wie ich Dockerfiles benennen soll. Viele auf GitHub verwenden Dockerfile
ohne Dateierweiterung. Gebe ich ihnen einen Namen und eine Erweiterung? wenn ja, was? Oder rufe ich sie einfach an Dockerfile
?
Ich bin mir nicht sicher, wie ich Dockerfiles benennen soll. Viele auf GitHub verwenden Dockerfile
ohne Dateierweiterung. Gebe ich ihnen einen Namen und eine Erweiterung? wenn ja, was? Oder rufe ich sie einfach an Dockerfile
?
Antworten:
Ändern Sie den Namen der Docker-Datei nicht, wenn Sie den Autobuilder unter hub.docker.com verwenden möchten. Verwenden Sie keine Erweiterung für Docker-Dateien, lassen Sie sie null. Der Dateiname sollte nur sein: (überhaupt keine Erweiterung)
Dockerfile
Sie können jedoch auch wie unten tun ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
Usw.
Auf VS Code können Sie verwenden <purpose>.Dockerfile
und es funktioniert entsprechend.
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
Usw.
Auf VS Code verwende ich <purpose>.Dockerfile
und es wird korrekt erkannt.
Ich denke, Sie sollten ein Verzeichnis pro Container mit einer Docker-Datei (keine Erweiterung) haben. Beispielsweise:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Wenn Sie nur den Verzeichnisnamen verwenden, findet Docker die Docker-Datei. z.B:
docker build -f ./db .
Wenn Sie den Autobuilder unter hub.docker.com verwenden möchten, muss dies der Fall sein Dockerfile
. Also da :)
Es scheint, dass dies wahr ist, aber persönlich scheint es mir schlechtes Design zu sein. Sicher, haben Sie einen Standardnamen (mit Erweiterung), lassen Sie jedoch andere Namen zu und geben Sie den Namen der Docker-Datei für Befehle an.
Eine Erweiterung zu haben ist auch schön, weil man damit Anwendungen diesem Erweiterungstyp zuordnen kann. Wenn ich in MacOSX auf eine Docker-Datei klicke, wird diese als ausführbare Unix-Datei behandelt und versucht, sie auszuführen.
Wenn Docker-Dateien eine Erweiterung hätten, könnte ich das Betriebssystem anweisen, sie mit einer bestimmten Anwendung zu starten, z. B. meiner Texteditor-Anwendung. Ich bin nicht sicher, aber das aktuelle Verhalten kann auch mit den Dateiberechtigungen zusammenhängen.
Ich habe zwei Docker-Dateien im selben Verzeichnis erstellt.
# vi one.Dockerfile
# vi two.Dockerfile
um beide Dockerfiles zu erstellen, verwenden Sie,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Hinweis: Sie sollten sich im aktuellen Arbeitsverzeichnis befinden.
Gebe ich ihnen einen Namen und eine Erweiterung? wenn ja, was?
Sie können Ihre Docker-Dateien beliebig benennen. Der Standarddateiname lautet Dockerfile
(ohne Erweiterung). Die Verwendung des Standarddateinamens kann verschiedene Aufgaben beim Arbeiten mit Containern erleichtern.
Abhängig von Ihren spezifischen Anforderungen möchten Sie möglicherweise den Dateinamen ändern. Wenn Sie beispielsweise für mehrere Architekturen erstellen , möchten Sie möglicherweise eine Erweiterung hinzufügen, die die Architektur angibt, wie das Team von resin.io für den HAProxy -Container das ARM-Beispiel für mehrere Container erstellt hat :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
In dem bereitgestellten Beispiel erstellt jede Docker-Datei aus einem anderen, architekturspezifischen Upstream-Image. Die spezifische Docker-Datei, die für den Build verwendet werden soll, kann mithilfe der --file, -f
Option angegeben werden, wenn Sie Ihren Container über die Befehlszeile erstellen .
Dockerfile
ist gut, wenn Sie nur eine Docker-Datei (pro Verzeichnis) haben. Sie können jeden gewünschten Standard verwenden, wenn Sie mehrere Docker-Dateien im selben Verzeichnis benötigen - wenn Sie einen guten Grund haben. In einem kürzlich durchgeführten Projekt gab es AWS-Docker-Dateien und lokale Entwicklungsumgebungsdateien, da sich die Umgebungen ausreichend unterschieden:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
neben einem Dockerfile.i386
.