#docker #jenkins #jenkins-pipeline #docker-run
#docker #Дженкинс #дженкинс-конвейер #docker-run
Вопрос:
У меня есть конвейер Jenkins с установленным плагином Docker Pipeline.
Я хотел бы запустить контейнер docker с плагином, используя следующую команду:
docker.image("$uri/$name:$tag").run("-it --name myWebApp -v /myData:/mywebapp/data")
Однако, однако, консоль Jenkins’log мне ничего не показывает. Я использую -it
для отображения журнала и процесса до его завершения, однако, похоже, он не работает.
Глядя на официальную документацию, кажется, что она используется -d
в detached
режиме . Я видел этот тип withRun
и попробовал следующую команду:
docker.image("$uri/$name:$tag").run("-it --name myWebApp -v /myData:/mywebapp/data") { c->
sh "docker logs ${c.id}"
}
Однако он останавливается через несколько секунд, показывая это:
docker logs 897sdfhdv87sdXX
Как мне обычно запускать контейнер docker? Показывая журналы и синхронно? Он заканчивается типом exit 0 при успешном завершении контейнера
Ответ №1:
Привет, я знаю, что это, вероятно, больше не нужно, но я считаю, что это достижимо, выполнив что-то вроде:
docker.image('mysql:5').withRun('-e "MYSQL_ROOT_PASSWORD=my-secret-pw"') { c ->
sh "docker logs ${c.id}"
}
Этот пример был адаптирован из https://www.jenkins.io/doc/book/pipeline/docker /