th3mis
@th3mis

Как подружить Jenkins и Docker?

Здравствуйте, у меня тупой концептуальный вопрос, который не выходит нагуглить.

Есть Python скрипт который делает определенную работу по входным параметрам и складывает артефакт в файловое хранилище.

Все это дело я запускаю через Jenkins и здесь есть три варианта:
1. Просто запуск скрипта - нужно ставить зависимости и загрязнять всем этим барахлом сервер -> плохо
2. docker run моего скрипта - наверное самый правильный вариант -> правильно но медленно.
3. docker run через systemd и потом запросы все идут с помощью Jenkins через docker exec bash -c 'blabla' -> быстро, но проблема в том что когда пользователь делает отмену сборки в Jenkins (abort) процесс внутри контейнера остается висеть и мешает дальнейшей работе (PTY Jenkins не умеет делать что бы работал signal-forward в контейнер) -> плохо

Каким образом тогда это все лучше организовать?

---

Насколько вообще порочная практика делать docker run для поднятия окружения, и далее фигачить docker exec для запуска скриптов там?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
Варианты:
  1. Jenkins - Docker Agent https://wiki.jenkins.io/display/JENKINS/Docker+Plugin
  2. Jenkins - docker inside https://jenkins.io/doc/book/pipeline/docker/
  3. Просто запуск скрипта с установкой зависимостей в venv
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы