gpt4 book ai didi

jenkins - 在 Jenkins 中停止 Docker 容器的最佳方法

转载 作者:行者123 更新时间:2023-12-04 20:44:11 25 4
gpt4 key购买 nike

我有一个 CI 服务器(jenkins),它正在构建新的 Docker 镜像。
现在我想在构建成功时运行一个新的 Docker 容器。
但因此我必须停止之前运行的容器。

执行此操作的最佳方法是什么?localhost:5000/test/myapp:"${BUILD_ID} 是我的新图像的名称。所以我使用 build-id 作为标签。首先我想执行:

docker stop localhost:5000/dbm/my-php-app:${BUILD_ID-1}

但这不是一个正确的解决方案,因为当构建失败时,这将是错误的。
Build 1: succes -> run container 1 
Build 2: failed -> run container 1
Build 3: succes -> stop container (3-1) =2 --> wrong (isn't running)

什么是解决方案?也欢迎我必须更改标签想法的建议

最佳答案

docker stop 命令将 docker 容器名称作为参数,而不是 docker 镜像 ID。

运行时,您必须为容器命名:

# build the new image
docker build -t localhost:5000/test/myapp:"${BUILD_ID}" .

# remove the existing container
docker rm -f myjob && echo "container myjob removed" || echo "container myjob does not exist"

# create and run a new container
docker run -d --name myjob localhost:5000/test/myapp:"${BUILD_ID}"

在此示例中,只需将 myjob 替换为更合适的名称即可。

关于jenkins - 在 Jenkins 中停止 Docker 容器的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com