Я намагаюся використовувати Дженкінса для створення проекту C ++ у контейнері Docker. У мене немає проблем з будівництвом в Дженкінсі або з будівництвом контейнера поза Дженкінсом.
Нижче - те, що я спробував. Я опускаю відображення томів для наочності.
Випадок 1
Наступна команда успішно виконує збірку в оболонці.
docker run --rm --interactive=true --tty=true $IMAGE make
Однак при запуску в Дженкінс як "виконувати оболонку" крок Докер повертає наступну помилку.
cannot enable tty mode on non tty input
Випадок 2
Наступна команда схожа на попередню, але вимикає інтерактивність.
docker run --rm $IMAGE make
Дженкінс може запустити збірку успішно. Однак при перериванні конструкції є серйозні проблеми. Збірка відразу позначається як перервана, але контейнер працює, поки збірка не завершиться. Також контейнер не виймається після виходу.
При запуску в оболонці команда будується успішно, але перервати її неможливо. Також контейнер виймається після виходу.
Питання
Хто-небудь знав би, як чисто запускати збірки в контейнерах Docker від Jenkins і зберігати можливість переривати збірки?
Використання будь-якого з плагінів Дженкінса не є можливим, оскільки виклики Докера знаходяться всередині сценаріїв і не можуть бути легко вилучені.