【发布时间】:2020-04-08 11:57:47
【问题描述】:
我有一个 Jenkinsfile 或一个 Jenkins 管道,它创建一个新映像并从该映像启动一个容器。它第一次运行良好。但在随后的运行中,我希望之前的容器停止并删除。我的 Jenkinsfile 如下:
node {
def commit_id
stage('Preparation') {
checkout scm
sh "git rev-parse --short HEAD > .git/commit-id"
commit_id = readFile('.git/commit-id').trim()
}
stage('docker build/push') {
docker.withRegistry('https://index.docker.io/v1/', 'dockerhub') {
def app = docker.build("my-docker-id/my-api:${commit_id}", '.').push()
}
}
stage('docker stop container') {
def apiContainer = docker.container('api-server')
apiContainer.stop()
}
stage('docker run container') {
def apiContainer = docker.image("my-docker-id/my-api:${commit_id}").run("--name api-server --link mysql_server:mysql --publish 3100:3100")
}
}
“docker stop container”阶段失败。那是因为我不知道获取容器并停止它的正确 API。谢谢。
【问题讨论】:
标签: docker jenkins jenkins-pipeline jenkins-docker