我想使用 jenkins 执行后续步骤:
1- docker pull <image_name>
2- docker run -i -t <command>
我已经在 jenkins 上安装了 docker 插件,但这可行吗?docker 插件页面中的文档 很差。
我想使用 jenkins 执行后续步骤:
1- docker pull <image_name>
2- docker run -i -t <command>
我已经在 jenkins 上安装了 docker 插件,但这可行吗?docker 插件页面中的文档 很差。
这些天(2017 年年中,在 OP 提出问题后一年多),您将使用Jenkins 管道的内部指令在 docker 映像中拉取和运行一些命令。
例如(将 Jenkins Pipelines 与 Docker 一起使用),使用Docker Pipeline 插件:
docker.image('ruby:2.3.1').inside {
stage("Install Bundler") {
sh "gem install bundler --no-rdoc --no-ri"
}
stage("Use Bundler to install dependencies") {
sh "bundle install"
}
}
这些步骤由插件以编程方式执行。或者,您可以在 build->execute shell 中安装 docker 将脚本执行到 jenkins slave:
#!/bin/bash
export image=`docker images httpd|wc -l`
echo image $image
if [ "$image" -lt "1" ];
then
docker pull httpd
fi
export container=`docker ps -all -f="name=webcontainer"|wc -l`
echo container $container
if [ "$container" -gt "1" ];
then
echo "Deleting webcontainer"
docker rm -f webcontainer
fi
BUILD_ID=dontKillMe docker run -d -t -p8888:80 --name webcontainer httpd
您可以使用以下命令与创建的 docker 交互:
`docker exec -it webcontainer /bin/bash`