容器名称已被容器使用 – gitlab ci

在“test_image”步骤中,当我在gitlab CIpipe道中对泊坞窗图像运行testing时,出现以下错误。 我不能在本地重现它,它只发生在gitlab亚军框。 有任何想法吗?

容器名称“/ common_run_1”已被容器使用

image: docker:latest stages: - build - test - release before_script: - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN myregistry.gitlab build_image: stage: build script: - docker build --pull -t $CONTAINER_TEST_IMAGE . - docker-compose up -d --build - docker push $CONTAINER_TEST_IMAGE pylint: stage: test script: - docker pull $CONTAINER_TEST_IMAGE - docker-compose run common pylint common test_image: stage: test script: - docker pull $CONTAINER_TEST_IMAGE - docker-compose run common nosetests common push_master_image: stage: release script: - docker pull $CONTAINER_TEST_IMAGE - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_MASTER_IMAGE - docker push $CONTAINER_MASTER_IMAGE only: - master push_prod_image: stage: release script: - docker pull $CONTAINER_TEST_IMAGE - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_PROD_IMAGE - docker push $CONTAINER_PROD_IMAGE only: - prod 

更新:简单地使用“docker-compose down”或“docker stop”有多种build议。 我已经在我的gitlab-runner框中完成了这个工作(完全清理了docker进程,图像,卷和networking),并重新提交了pipe道请求。 在这种情况下,我在gitlabpipe道中得到相同的错误。 这让我觉得在“testing”阶段有一个并发问题。 而且,如果我添加一个“test2”阶段并将“pylint”脚本放在其中,那么stream水线将成功,进一步重新强化并发问题的思想。

你的阶段:testing是有两个docker组成运行,并且都运行使用相同的容器名称。 您可以通过在第一个testing的docker-compose run中添加--name test1和在docker-compose run第二个testing中docker-compose run --name test2来更改此项。

原始答复

运行docker ps -a ,它将列出哪些容器名称已被使用。 这主要是因为你已经使用docker-compose up运行了容器,而容器仍然在运行。

你的select是

  1. 运行docker-compose down 。 这应该打倒已经运行的容器。 而且应该很可能解决你的错误。
  2. 如果选项1失败,则可以通过运行docker stop <container_name>来查看哪些容器正在运行并停止这些容器。