Таким образом, шаг конвейера докера работает следующим образом:
docker.image('maven:3.3.3-jdk-8').inside {
sh "git clone .."
sh 'mvn -B clean install'
}
, где каждый оператор замыкания выполняется на работающем контейнере, обернутом docker exec
Я хочу использовать ту же технику, но на контейнере побежал docker-compose
.
Я хочу создать шаг (если его там уже нет).
Предположим, на ранней стадии у меня есть набор служб, работающих с docker-compose
. Я знаю идентификатор контейнера, в котором я хочу выполнить несколько шагов jenkins. Шаг будет выглядеть следующим образом:
withContainer(<id_of_the_container>) {
sh "date"
sh "cat mydog"
}
, где каждый оператор в замыкании будет выполняться в контейнере, как если бы я фактически делал следующее:
docker exec <id_of_the_container> sh "date"
docker exec <id_of_the_container> sh "cat mydog"
Я могуначать определять шаг, подобный
def withContainer(containerId, Closure cl) {
// I know I need to do something like
// docker exec $containerId ...
}
, как мне получить доступ к операторам в замыкании? Или я поступаю неправильно?