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