Как я могу сделать сборку docker для сборки изображения из удаленного репозитория git?
Docker-compose позволяет вам использовать либо предварительные изображения докеров или строить из источника. Для опции сборки официальная ссылка требует
Либо путь к каталогу, содержащему файл Docker, , либо URL-адрес репозитория git.
Я хотел бы воспользоваться последним случаем, так что мне не нужно создавать подмодуль git в моем проекте или зарегистрировать новый репозиторий на Docker Hub. К сожалению, нет примеров того, как форматировать URL-адрес, и каждая форма, которую я пробовал, ошибочно принимается за относительный путь к файлу.
например.
---
letsencrypt:
build: https://github.com/letsencrypt/letsencrypt.git
...
Ошибка с ошибкой:
ОШИБКА: путь сборки /{MY_CURRENT_PATH}/https:/github.com/letsencrypt/letsencrypt.git либо не существует, либо недоступен.
Мне больше не повезло с другими формами, которые я пробовал:
Ответы
Ответ 1
Вы используете версию 1.5.2? Похоже, это недавно было добавлено в https://github.com/docker/compose/pull/2430. Попробуйте обновить.
Пример:
---
version: '2'
services:
redis:
image: "redis:3.2.3"
hostname: redis
redis-commander:
build: https://github.com/joeferner/redis-commander.git
command: --redis-host redis
links:
- "redis:redis"
ports:
- 8081
Протестировано с помощью
$ docker-compose -v
docker-compose version 1.11.2, build dfed245
Ответ 2
В файле tests/unit/config/config_test.py
показано:
def test_valid_url_in_build_path(self):
valid_urls = [
'git://github.com/docker/docker',
'[email protected]:docker/docker.git',
'[email protected]:atlassianlabs/atlassian-docker.git',
'https://github.com/docker/docker.git',
'http://github.com/docker/docker.git',
'github.com/docker/docker.git',
]
Это подтверждается compose/config/config.py#L79-L85
:
DOCKER_VALID_URL_PREFIXES = (
'http://',
'https://',
'git://',
'github.com/',
'[email protected]',
)