Docker: как создать образ из немастерной ветки в репозитории Github

Можно ли создать образ из неосновной ветки в репозитории Github?

Например, у меня есть хранилище //github.com/myAccount/docker-myImage с ответвлением development, который я хотел бы использовать для моего образа. К сожалению, следующая команда разрешает сборку только из master ветки:

docker build -t myAccount/myImage git://github.com/myAccount/docker-myImage

Вот соответствующая документация от man docker build:

Создание изображения с использованием URL

Это клонирует указанный репозиторий Github из URL и использует его в качестве контекста. Dockerfile в корне хранилища используется как Dockerfile. Это работает только в том случае, если репозиторий Github является выделенным.

docker build github.com/scollier/Fedora-Dockerfiles/tree/master/apache

Примечание: вы можете установить произвольный репозиторий Git через схему git://.

Возможно, есть альтернатива, например docker build -t myAccount/myImage git://github.com/myAccount/docker-myImage:development?

Ответ 1

docker build -t myAccount/myImage https://github.com/myAccount/docker-myImage.git#development

См. ссылка на команду docker build для получения дополнительных параметров.

Ответ 2

В документе, который вы цитировали, упоминается, как вы можете указать ветку:

github.com/scollier/Fedora-Dockerfiles/tree/master/apache

Измените tree/master на нужную ветку и посмотрите.

Ответ 3

Я предложил этот вопрос на #docker в IRC Freenode, и пользователь scollier связался со мной, и он сказал, что он вернется ко мне об этой проблеме. Я считаю, что он связан с документацией Докера, о которой я упоминал в своих вопросах. Тем временем я нашел обходное решение, добавив следующее к моему Dockerfile:

RUN git clone something && cd something && git checkout branch

Это решение, похоже, решает все мои потребности. Спасибо за поддержку!

Ответ 4

Кажется, вам нужно создать ветку до того, как реализация git docker-контейнера сможет извлечь ее из источника:

git fetch
git checkout -b branch_name
git pull origin branch_name