Идентификатор работающего контейнера не будет получен при возврате метода run
, а скорее будет сохранен во временной лямбда-переменной блока withRun
. Чтобы использовать эту возможность, мы изменили бы ваш код соответствующим образом:
stage('Test - To check MYSQL connect') {
def dockerfile = 'Dockerfile.test'
docker.build("rds-test", "-f ${dockerfile} .")
def rds_test_image = docker.image('rds-test')
docker.image('mysql:5.6').withRun('-e MYSQL_ALLOW_EMPTY_PASSWORD=yes') { container ->
rds_test_image.inside("--link ${container.id}:mysql") {
sh 'echo "Inside Container"'
}
}
}
Как вы можете видеть выше, запуск вашего второго контейнера в блоке кода другого контейнера withRun
делает идентификатор контейнера доступным внутри id
переменная-член временной лямбда-переменной, инициализированной в блоке (здесь для удобства названа container
).
Обратите внимание, что здесь можно также выполнить небольшую очистку кода, присвоив значение rds_test_image
возврат docker.build("rds-test", "-f ${dockerfile} .")
вместо добавления еще одной строки кода, присваивающей его возвращению docker.image('rds-test')
. Новый код также будет более стабильным.