Как я могу гарантировать, что сборки докеров параллельно не будут конфликтовать? - PullRequest
0 голосов
/ 01 марта 2019

Я использую плагин Docker Pipeline для запуска каждого задания Jenkins в контейнере.Каждое из моих заданий Дженкинса будет запускать docker-compose build.Если я запускаю много параллельных заданий, команды docker-compose могут конфликтовать друг с другом.Я понимаю, что в каждой сборке можно использовать какую-то уникальную строку в качестве имени для сети докеров или в качестве имени / тега для команды docker-compose build, но я надеюсь на решение, которое этого не требует.Возможно, существует способ «пространства имен» каждого контейнера заданий Jenkins, чтобы ни один из их ресурсов не мог быть разделен?

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете сгенерировать пользовательское имя проекта (например, идентификатор фиксации и / или номер задания), чтобы ресурсы, создаваемые файлом compose, были уникальными и предположительными.Таким образом, вам не нужно изменять сам файл композиции, не перемещая его в другое место.

docker-compose распознает либо переменную среды COMPOSE_PROJECT_NAME, либо вы можете передать ее в качестве аргумента, например docker-compose -p ${MY_UNIQUE_ID} build.

...