Плагин Docker в Jenkins - Переопределить место монтирования рабочего пространства - PullRequest
0 голосов
/ 03 сентября 2018

В конвейере Jenkins, когда я использую withDockerContainer() или docker.build(...).inside(...), рабочая область jenkins автоматически монтируется в контейнер в том же месте (например, если рабочая среда jenkins была / tmp / jenkins_ws / job_name, тогда точка монтирования этот путь будет добавлен в контейнер по тому же пути -v /tmp/jenkins_ws/job_name:/tmp/jenkins_ws/job_name -w /tmp/jenkins_ws/job_name.

Я хочу переопределить путь, в котором рабочее пространство смонтировано внутри контейнера. Я делаю следующее docker.build(...).inside("-v $WORKSPACE:/tmp/ws -w /tmp/ws"), однако, когда я заглядываю в консоль, я вижу, что контейнер создается следующим образом (при условии, что текущее рабочее пространство на этапе - / tmp / jenkins_ws / job_name @ 1 docker run -d -v /tmp/jenkins_ws/job_name@1:/tmp/ws -w /tmp/ws -e ******* -e ******* -v /tmp/jenkins_ws/job_name@1:/tmp/jenkins_ws/job_name@1 -w /tmp/jenkins_ws/job_name@1 IMAGE_NAME cat

Обратите внимание, что команда содержит аргументы, которые я передал в методе .inside(), а затем плагин снова добавляет некоторые элементы.

Я хочу иметь возможность монтировать рабочее пространство в какое-то место контейнера, которое переопределяет место по умолчанию.

Для тех, кому интересно, зачем мне это делать, cmake генерирует только абсолютные пути в Make-файлах, поэтому я не могу переместить дерево сборки в другое место. Что я делаю здесь, так это то, что я создаю этап в контейнере и хочу тестировать биты в несколько этапов параллельно, но при этом гарантирую, что путь к рабочему пространству в контейнерах всегда один и тот же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...