Как я могу сделать сборку 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]',
)