在gitlab CI服务器中构建错误(可能与git子模块有关)

时间:2017-02-06 19:44:59

标签: git gitlab git-submodules gitlab-ci gitlab-ci-runner

我被分配到一个使用git子模块的项目。我对README.md的降价进行了一些小改动,并收到以下错误:

Running on staging.example.com...
Fetching changes...
HEAD is now at 2414dbe test change
From https://gitlab.example.com/external/project-example
   2432dbe..b64b2d0  develop    -> origin/develop
Checking out b452d91 as develop...
$ docker rm -f $CONTAINER_NAME-db
Error response from daemon: No such container: project-example-db
ERROR: Build failed: exit status 1

当我检查名为.gitlab-ci.yml的文件时,我看到了这段代码:

# ADD   

install:clean:
    stage: prepare
    script:
        - docker rm -f $CONTAINER_NAME-db
        - docker rm -f $CONTAINER_NAME
        - docker rmi $IMAGE_NAME
    allow_failure: true
    tags:
      - staging

# BUILD

prepare:build:
    stage: prepare
    script:
        - git submodule init
        - git submodule update --recursive
        - docker-compose build --no-cache --pull
    tags:
      - staging

我不确定我的错误是否是由于子模块缺少的,我的.gitmodules文件如下所示:

[submodule "frontend"]
    path = frontend
    url = git@gitlab.example.com:external/project-example-frontend.git
    branch = v3.1

我在目录中有2个回购(项目示例& 项目 - 示例 - 前端)。我错过了什么?

1 个答案:

答案 0 :(得分:1)

您正在尝试删除容器 project-example-db 项目示例(使用docker rm)而 project-example-db 不存在。在这种情况下,该命令返回非零退出状态,因此整个作业失败。根据您提供的信息,并不完全清楚容器是如何启动的。你可以:

  1. Check that the containers exist并尝试删除它们。
  2. 如果容器是使用docker-compose启动的(在prepare:build作业中),则可以使用docker-compose down将其删除,而不是优先执行,如果容器不是,则不会失败运行