Плагин конвейера Jenkins Docker с запуском docker

#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 /