Nie wiem, jak nazwać pliki Dockerfiles. Wiele osób korzysta z GitHub Dockerfile
bez rozszerzenia pliku. Czy nadam im nazwę i rozszerzenie; Jeśli tak to co? A może po prostu do nich dzwonię Dockerfile
?
Nie wiem, jak nazwać pliki Dockerfiles. Wiele osób korzysta z GitHub Dockerfile
bez rozszerzenia pliku. Czy nadam im nazwę i rozszerzenie; Jeśli tak to co? A może po prostu do nich dzwonię Dockerfile
?
Odpowiedzi:
Nie zmieniaj nazwy pliku dockerfile, jeśli chcesz użyć autobuildera na hub.docker.com. Nie używaj rozszerzenia dla plików Dockera, pozostaw je puste. Nazwa pliku powinna wyglądać po prostu: (bez rozszerzenia)
Dockerfile
jednak możesz zrobić to, co poniżej ...
dev.Dockerfile
, uat.Dockerfile
, prod.Dockerfile
Itd.
Na VS Code możesz użyć <purpose>.Dockerfile
i działa odpowiednio.
docker build
polecenia, co oznacza, że każdy obraz zostanie niepotrzebnie odbudowany, jeśli zmieniony zostanie plik dockerfile innego obrazu.
dev.Dockerfile
, test.Dockerfile
, build.Dockerfile
Itd.
Na VS Code używam <purpose>.Dockerfile
i jest poprawnie rozpoznawany.
Myślę, że powinieneś mieć katalog na kontener z plikiem Dockerfile (bez rozszerzenia). Na przykład:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Podczas budowania po prostu użyj nazwy katalogu, Docker znajdzie plik Dockerfile. na przykład:
docker build -f ./db .
Jeśli chcesz korzystać z autobuildera na hub.docker.com, musisz to zrobić Dockerfile
. Tak więc :)
Wydaje się, że to prawda, ale osobiście wydaje mi się, że to kiepski projekt. Jasne, miej domyślną nazwę (z rozszerzeniem), ale zezwalaj na inne nazwy i miej sposób na określenie nazwy pliku dockera dla poleceń.
Posiadanie rozszerzenia jest również przyjemne, ponieważ pozwala kojarzyć aplikacje z tym typem rozszerzenia. Kiedy klikam plik Dockerfile w systemie MacOSX, traktuje go jako plik wykonywalny systemu Unix i próbuje go uruchomić.
Gdyby pliki Dockera miały rozszerzenie, mógłbym powiedzieć systemowi operacyjnemu, aby uruchamiał je z konkretną aplikacją, np. Moim edytorem tekstu. Nie jestem pewien, ale obecne zachowanie może być również związane z uprawnieniami do plików.
Utworzyłem dwa Dockerfile w tym samym katalogu,
# vi one.Dockerfile
# vi two.Dockerfile
do budowania obu Dockerfiles,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Uwaga: powinieneś być w obecnym katalogu roboczym.
Czy nadam im nazwę i rozszerzenie; Jeśli tak to co?
Możesz dowolnie nazywać swoje pliki Dockerfiles. Domyślna nazwa pliku to Dockerfile
(bez rozszerzenia), a jej użycie może ułatwić różne zadania podczas pracy z kontenerami.
W zależności od konkretnych wymagań możesz chcieć zmienić nazwę pliku. Jeśli na przykład budujesz dla wielu architektur, możesz chcieć dodać rozszerzenie wskazujące architekturę, jaką wykonał zespół resin.io dla kontenera HAProxy, przykład wielopojemnikowego ARM :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
W podanym przykładzie każdy plik Dockerfile jest kompilowany z innego, specyficznego dla architektury obrazu nadrzędnego. Konkretny plik Dockerfile, który ma być używany do kompilacji, można określić za pomocą --file, -f
opcji podczas budowania kontenera za pomocą wiersza polecenia.
Dockerfile
jest dobre, jeśli masz tylko jeden plik Dockera (na katalog). Możesz użyć dowolnego standardu, jeśli potrzebujesz wielu plików Dockera w tym samym katalogu - jeśli masz dobry powód. W ostatnim projekcie istniały pliki dockera AWS i lokalne pliki środowiska deweloperskiego, ponieważ środowiska te różniły się wystarczająco:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
obok pliku Dockerfile.i386
.