2016-08-04 6 views
0

Я очень новичок в Docker и тому подобное, поэтому я задаюсь вопросом, могу ли я изменить исходные официальные и общедоступные изображения из Docker.Hub (который я использую в директиве FROM) на -fly, используя их в моих собственных сборках контейнеров, вроде как шеф-повара chef-rewind do?Wrap origin public Dockerfile для управления build args и т. Д.

Например, если мне нужно передать build-args на openresty/latest-centos, чтобы построить его без модулей, я не буду использовать. Мне нужно поставить этот

FROM openresty/latest-centos 

в моем Dockerfile, и что еще я должен сделать для openresty быть построены только с модулями я нужен?

ответ

1

Когда вы используете директиву FROM в файле Dockerfile, вы просто поручаете Docker использовать именованное изображение в качестве базы для изображения, которое будет создано с вашим файлом Docker. Это не приводит к перестройке базового образа, поэтому невозможно «передать параметры» в процесс сборки.

Если openresty изображение не соответствует вашим требованиям, вы можете:

  • Клонирование openresty репозиторий,
  • Изменить Dockerfile,
  • Run docker build ..., чтобы создать свой собственный образ

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

+0

Спасибо, приятель. Это кажется «грустным, но истинным». Спасибо за быстрый ответ, сейчас я буду использовать частный реестр с моими пользовательскими потребностями, поскольку изменение модулей - не единственный случай, когда мне это нужно. –