2014-09-27 16 views
29

我對如何命名Dockerfiles有點密集。如何命名Dockerfiles

GitHub上的例子似乎被稱爲Dockerfile。

我給他們一個名字和擴展名;如果是這樣的話?或者只是稱他們爲Docker文件?

回答

39

如果你想在hub.docker.com上使用自動編譯器,請不要更改dockerfile的名稱。不要爲docker文件使用擴展名,將其保留爲空。 文件名應該僅僅是:(沒有擴展名的全部)

Dockerfile 

希望幫助

+26

當你在同一個目錄下有多個Dockerfiles時呢? – 2016-08-13 12:12:08

+0

@VisgeanSkeloru雖然有點麻煩,你可以把它們放在不同的目錄,如果需要的話,無論我看到它在哪裏看起來似乎已經建立了公約 – orustammanapov 2017-04-06 15:04:48

12

如果您想在hub.docker.com上使用自動編譯器,它的必須是Dockerfile。所以:)

+2

誰只是路過式downvoted它沒有理由或評論:很好做。我給出了與現在接受的解決方案相同(正確)的答案,只是更早,更少。 – 2014-11-27 18:02:10

9

看來,這是真實的,但個人而言,在我看來是設計不良。當然,有一個默認名稱(帶擴展名),但允許其他名稱,並有一種方法來指定docker文件的命令名稱。

擴展也很好,因爲它允許將應用程序關聯到該擴展類型。當我點擊MacOSX中的Dockerfile時,它將它視爲Unix可執行文件並嘗試運行它。

如果Docker文件有擴展名,我可以告訴操作系統使用特定的應用程序啓動它們,例如,我的文本編輯應用程序我不確定,但目前的行爲也可能與文件權限有關。

13

我想你應該有一個每個容器的Dockerfile(沒有擴展名)的目錄。例如:

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

當您只使用目錄名稱構建時,Docker將查找Dockerfile。例如:

docker build -f ./db . 
+0

它會從你的例子中構建3個容器嗎? – alvas 2017-04-11 01:56:31

+0

@alvas是的,它會 – garryp 2017-04-11 09:02:15

+0

我自己喜歡這種方法 – Hcabnettek 2017-05-12 23:01:44

0

Dockerfile如果你只有一個docker文件(每個目錄),這是很好的。如果您在同一目錄中需要多個碼頭文件,則可以使用任何標準,如果您有充分的理由,則可以使用任何標準 - 。在最近的一個項目有AWS泊塢窗文件和本地開發環境的文件,因爲環境不同夠:

Dockerfile Dockerfile.aws

0

在vscode,我用dev.Dockerfile,它仍然可以正確識別它。

所以我在同一個文件夾命名多個Dockerfiles策略是:

purpose.Dockerfile