Среда:
- Мастер Jenkins работает внутри контейнера docker на машине 1.
- Jenkins настроен на использование docker, установленного на машине 2.
- ведомые устройства Jenkins (настроенное изображение S SH с JDK11) являются динамическими c docker контейнерами на машине 2.
Цель:
- Задание, которое запускает контейнер MySQL в качестве подготовительного шага.
- Создайте новую базу данных в контейнере MySQL.
- Запустите подчиненный контейнер Jenkins и подключитесь к MySQL база данных контейнеров для выполнения тестов с использованием новой базы данных.
- Удалить контейнеры после завершения задания.
Что сделано до сих пор?
Нижний конвейер создан в соответствии с документом do c Использование Docker с конвейером .
node {
docker.withServer('tcp://172.18.0.1:2376') {
docker.image('mysql:8.0.20').withRun('-e "MYSQL_ROOT_PASSWORD=my-secret-pw" -p 3306:3306') { c ->
docker.image('mysql:8.0.20').inside("--link ${c.id}:db") {
/* Wait until mysql service is up */
sh 'while ! mysqladmin ping -hdb --silent; do sleep 1; done'
}
docker.image('slave:jdk11').inside("--link ${c.id}:db") {
/*
* Run some tests which require MySQL, and assume that it is
* available on the host name `db`
*/
sh 'java -version'
}
}
}
}
В чем проблема?
Состояние задания на ведомом устройстве, на котором оно было запущено.
jdk11-00002tlztcaay на docker кажется, выполняется внутри e контейнер 4500cc9dc8df5b3f1eefb2e29bf9e20e390cd6e454886a8c94cdf7327772aecc, но / home / jenkins / workspace / test-sidecar не может быть найден среди [/ var / jenkins_home / tools, /home/jenkins/.см. среди [/ var / jenkins_home / tools, /home/jenkins/.ssh visible
MySQL запускается контейнер.
$ docker run -t - d -u 1000: 1000 --ссылка 174ddb69b163232937b4d93c55af7c07132a55c0e3794610110742faf216021d: db -w / home / jenkins / workspace / test-sidecar -v / home / jenkins / workspace / test-sidecar: / home / jenkins, sidecar: / home / test-side / workspace z -v / home / jenkins / workspace / test-sidecar@tmp: / home / jenkins / workspace / test-sidecar@tmp: rw, z -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** mysql: 8.0.20 cat
Jenkins exe cutes docker top command.
$ docker top 8eb75a9953d5fde678a06549e39fdd362c9305a12ac161c6cc4780b4a8b733f4 -eo pid, comm [конвейер] {sh* *
[конвейерный процесс] * 1093, очевидно, никогда не запускался в / home / jenkins / workspace / test-sidecar@tmp/durable-cf6adc3a (временный запуск Jenkins с -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS = true может прояснить проблему) [Pipeline]}
Он удаляет контейнер.
Пожалуйста, помогите определить ошибку в конвейере, которая блокирует мою работу. В нем теряется почти день.
Попробовали другие методы: Даже пробовал запустить docker только на машине 1, но все равно возникает та же ошибка.