Я не уверен, как назвать Dockerfiles. Многие на GitHub используют Dockerfile
без расширения файла. Я даю им имя и расширение; Если да, то? Или я просто позвоню им Dockerfile
?
Я не уверен, как назвать Dockerfiles. Многие на GitHub используют Dockerfile
без расширения файла. Я даю им имя и расширение; Если да, то? Или я просто позвоню им Dockerfile
?
Ответы:
Не меняйте имя файла dockerfile, если вы хотите использовать autobuilder на hub.docker.com. Не используйте расширение для файлов Docker, оставьте его пустым. Имя файла должно быть просто: (без расширения)
Dockerfile
Тем не менее, вы можете сделать, как показано ниже ...
dev.Dockerfile
, uat.Dockerfile
, И prod.Dockerfile
т.д.
На VS Code вы можете использовать, <purpose>.Dockerfile
и он работает соответственно.
docker build
команды, что означает, что каждое изображение будет перестроено без необходимости, если файл Docker другого изображения будет изменен.
dev.Dockerfile
, test.Dockerfile
, И build.Dockerfile
т.д.
На VS Code я использую <purpose>.Dockerfile
и он распознается правильно.
Я думаю, у вас должен быть каталог на контейнер с Dockerfile (без расширения). Например:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
Когда вы собираете просто использовать имя каталога, Docker найдет Dockerfile. например:
docker build -f ./db .
Если вы хотите использовать autobuilder на hub.docker.com, так и должно быть Dockerfile
. Так что :)
Кажется, это правда, но лично мне кажется плохой дизайн. Конечно, иметь имя по умолчанию (с расширением), но разрешить другие имена и способ указать имя файла Docker для команд.
Наличие расширения также хорошо, потому что оно позволяет ассоциировать приложения с этим типом расширения. Когда я нажимаю на Dockerfile в MacOSX, он обрабатывает его как исполняемый файл Unix и пытается запустить его.
Если у файлов Docker есть расширение, я могу указать ОС запустить их с определенным приложением, например, с моим приложением для текстового редактора. Я не уверен, но текущее поведение также может быть связано с разрешениями файла.
Я создал два файла Docker в одном каталоге,
# vi one.Dockerfile
# vi two.Dockerfile
построить оба Dockerfiles,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
Примечание: вы должны быть в текущем рабочем каталоге.
Я даю им имя и расширение; Если да, то?
Вы можете назвать свои Dockerfiles так, как вам нравится. Имя файла по умолчанию Dockerfile
(без расширения), и использование по умолчанию может упростить различные задачи при работе с контейнерами.
В зависимости от ваших конкретных требований вы можете изменить имя файла. Например, если вы строите для нескольких архитектур, вы можете добавить расширение, обозначающее архитектуру как разрабатываете сделала команда смолы.io для контейнера HAProxy в своем примере ARM для нескольких контейнеров :
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
В представленном примере каждый Dockerfile строится из отдельного, специфичного для архитектуры, восходящего образа. Конкретный Dockerfile для использования в сборке может быть указан с помощью--file, -f
опции при сборке контейнера с помощью командной строки.
Dockerfile
хорошо, если у вас есть только один файл Docker (на каталог). Вы можете использовать любой стандарт, какой захотите, если вам нужно несколько файлов докеров в одном каталоге - если у вас есть веская причина. В недавнем проекте были файлы Docker AWS и локальные файлы среды разработки, потому что среды достаточно различались:
Dockerfile
Dockerfile.aws
Dockerfile.armv7hf
рядом с Dockerfile.i386
.