2015-02-13 3 views
3

Предположим, что у меня есть проект Django и вы хотите создать несколько Dockerfiles, которые будут использовать разные наборы настроек и системные пакеты (не путать с библиотеками Python). Для запуска приложения мне нужно скопировать полную версию кода проекта в изображение.Должен ли Dockerfile размещаться в корне контекста построения?

Теперь я видел Setting up a docker/fig Mesos environment, что побудило меня поместить каждый отдельный файл Docker в свой собственный каталог в корне проекта.

docker build env1/ прогнозирует создание tarball env1 и использует его для создания изображения.

Есть ли способ переопределить имя Dockerfile или создать корень контекста?

ответ

5

Docker 1.5 ввел опцию "указать Dockerfile использовать в сборке":

указать Dockerfile использовать в сборке

Составитель: Дуг Дэвис - Ссылка на PR

Этот возможно, является одной из наиболее востребованных функций в последних месяцах: возможность указать файл для использования в докере build вместо того, чтобы полагаться на файл Docker по умолчанию. docker build -f позволяет определить несколько файлов Docker в одном проекте и указать , который можно использовать во время сборки. Это может быть полезно, если вам нужны отдельные файлы Docker для тестирования и производства.

С помощью этой функции вам не нужно иметь отдельные папки для нескольких файлов Docker, поэтому необходимость иметь разные папки для каждого файла Docker больше не требуется. Просто добавьте в свою корневую папку несколько файлов Dockerfiles и создайте их с помощью опции -f.