2017-02-06 15 views
0

Мне присвоен проект, который использует git-подмодули. Я сделал небольшое изменение в уценки в README.md и получил следующее сообщение об ошибке:Ошибка сборки в сервере gitlab CI (возможно, связано с git-подмодулями)

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 = [email protected]:external/project-example-frontend.git 
    branch = v3.1 

у меня есть 2 репо (проект-пример & project-example-frontend) внутри каталога. Что мне не хватает?

ответ

1

Вы пытаетесь удалить контейнеры проект-пример-дб и проект-пример (с использованием docker rm), а проект-пример-дб не существует. В таком случае команда возвращает ненулевой статус выхода, и, следовательно, вся работа завершается с ошибкой. Из предоставленной вами информации не совсем понятно, как запускаются контейнеры. Вы можете:

  1. Check that the containers exist и попытаться удалить их, только если они есть.
  2. Если контейнеры начинаются с docker-compose (в задании prepare:build), вы можете удалить их с помощью docker-compose down, а это сделает его изящно и не подведет, если контейнеры не будут работать.