Как скопировать файл в контейнер Docker через файл задания Nomad

Является ли это возможным?

Вот мой файл работы кочевника

job "test-job" {
  ...
  group "test-group" {
    driver = "docker"
    config {
      image = "<image-name>"
    }
    ...
  }
}

Я понимаю, что можно скопировать файл в образ Docker с помощью сборки Dockerfile. Но я хочу избежать явного создания нового образа Docker из образа image-name.

Я также понимаю, что можно скопировать файл в работающий контейнер Docker, полученный из образа Docker. Но поскольку я использую Nomad для развертывания образов Docker и заполнения контейнеров, мне было бы удобно, если бы Nomad мог копировать (путем создания на лету нового слоя Docker с копируемым файлом).

Так что мне интересно, возможно ли это и как?


person Alexander Ites    schedule 28.07.2017    source источник


Ответы (1)


Не уверен, что понимаю вопрос ...

Если вы пытаетесь передать образ докера агенту кочевника, чтобы он мог его запустить, Nomad сделает это за вас.

Если вы пытаетесь добавить файлы в образ докера после того, как он был создан во время развертывания ..., у Nomad есть несколько вариантов ... вроде.

Вы можете использовать тома (https://www.nomadproject.io/docs/drivers/docker.html#volumes) и смонтируйте каталог с файлом в нем.

В качестве альтернативы вы можете использовать артефакт (https://www.nomadproject.io/docs/job-specification/artifact.html) и поместите его в / local (Nomad создает эту папку для вас), которая, как я полагаю, по умолчанию доступна для контейнеров докеров.

Или, по-другому, просто поставьте контейнер Docker при запуске, просто скачайте нужный файл (ы). Многие люди используют для этого consul-template, который теперь встроен в Nomad (https://www.nomadproject.io/docs/job-specification/template.html).

Ни один из этих методов на самом деле не создает новый слой образа докера, однако нет способа сделать это во время развертывания, это должно быть сделано во время сборки.

person zie    schedule 14.08.2017