2014-09-27 3 views
29

Я немного плотный, как назвать Dockerfiles.Как назвать Dockerfiles

Примеры на GitHub просто, кажется, называются Dockerfile.

Предоставляю ли я им имя и расширение; Если да, то? Или просто назовите их файлом Docker?

ответ

39

Не изменяйте имя файла докеров, если вы хотите использовать автообработчик на hub.docker.com. Не используйте расширение для файлов докеров, оставьте его нулевым. Имя файла не должно быть просто: (без расширения вообще)

Dockerfile 

Надежда, что помогает

+26

Как насчет того, когда у вас есть несколько файлов Docker в одном каталоге? –

+0

@ VisgeanSkeloru, хотя немного от хлопот, вы можете поместить их в разные каталоги, если это необходимо, независимо от того, где я выгляжу, похоже, уже установлено соглашение. – orustammanapov

+1

@ VisgeanSkeloru. У вас нет нескольких файлов Dockerfiles в том же каталоге. Содержащий каталог становится [context] (https: //docs.docker.com/engine/reference/builder/#) для команды 'docker build', что означает, что каждое изображение будет бесполезно перестроено, если изменится файл докере другого изображения. – Thomas

12

Если вы хотите использовать автозагрузчик на сайте hub.docker.com, то должен бытьDockerfile. Итак, там:

+2

Кто только попутной downvoted без причины или комментарий: красиво сделано. Я дал тот же (правильный) ответ, как принятое сейчас решение, просто раньше и меньше слов. –

9

Это кажется, что это правда, но, лично, мне кажется, чтобы быть плохим дизайном. Конечно, иметь имя по умолчанию (с расширением), но разрешать другие имена и иметь способ указать имя файла докеров для команд.

Наличие расширения также хорошо, потому что оно позволяет связать приложения с этим типом расширения. Когда я нажимаю на файл Docker в MacOSX, он рассматривает его как исполняемый файл Unix и пытается его запустить.

Если файлы Docker имели расширение, я мог бы сообщить ОС, чтобы они запускали их с помощью конкретного приложения, например. мое приложение текстового редактора. Я не уверен, но текущее поведение также может быть связано с файловыми правами.

13

Я думаю, у вас должен быть каталог на контейнер с файлом Docker (без расширения). Например:

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

Когда вы строите, просто используйте имя каталога, Docker найдет файл Docker. например:

docker build -f ./db . 
+0

Будет ли он строить 3 контейнера из вашего примера? – alvas

+0

@alvas Да это будет – garryp

+0

Мне нравится этот подход сам – Hcabnettek

0

Dockerfile хорошо, если у вас есть только один файл Docker (в-справочник). Вы можете использовать любой стандарт, который вам нужен, если вам понадобится несколько файлов докеров в том же каталоге - , если у вас есть веская причина. В недавнем проекте были AWS Докер файлы и локальные файлы DEV среды, так как окружающая среда достаточно различались:

Dockerfile Dockerfile.aws

0

На vscode, я использую dev.Dockerfile и она по-прежнему признает его правильно.

Так что моя стратегия именования несколько Dockerfiles в той же папке:

purpose.Dockerfile