2017-05-08 13 views
5

私のプロジェクトを実行するドッカーを含む私の最初のGitLab Ciパイプラインを設定する。パイプラインをいくつかの段階に分けて、ビルド、テスト、クリーンビルドを作成しました。このシナリオのすべてで GitLab Ci with docker runner - 複数のステージ

が正常に動作します:

stages: 
    - build 
    - test 
    - clean 

image: docker:latest 

services: 
    - docker:dind 

before_script: 
    - export RELEASE=${CI_BUILD_REF_NAME} 
    - docker version 

build: 
    stage: build 
    tags: 
    - sendis-dind 
    script: 
    - echo "Hallo in Build Stage" 

test: 
    stage: test 
    tags: 
    - sendis-dind 
    script: 
    - echo "Hallo in TEST Stage" 

clean-build: 
    stage: clean 
    tags: 
    - sendis-dind 
    script: 
    - echo "Hallo beim Clean Up" 
    when: always 

すべての3段階が

正常に実行されているが、これは失敗します。第二段階から次のメッセージで

stages: 
    - build 
    - test 
    - clean 

image: docker:latest 

services: 
    - docker:dind 

before_script: 
    - export RELEASE=${CI_BUILD_REF_NAME} 
    - docker version 

build: 
    stage: build 
    tags: 
    - sendis-dind 
    script: 
    - apk add --update py-pip 
    - pip install docker-compose 
    - docker --version 
    - docker-compose --version 
    - docker-compose -p ${RELEASE} build 
    - docker-compose -p ${RELEASE} up -d 

test: 
    stage: test 
    tags: 
    - sendis-dind 
    script: 
    - docker exec ${RELEASE}_phpfpm_1 bash -c "cd /app; composer install; make runTests" 

clean-build: 
    stage: clean 
    tags: 
    - sendis-dind 
    script: 
    - docker-compose -p ${RELEASE} down --volumes 
    when: always 

Running with gitlab-ci-multi-runner 9.1.1 (6104325) 
    on sendis-dind-runner (8b9eca1e) 
Using Docker executor with image docker:latest ... 
Starting service docker:dind ... 
Pulling docker image docker:dind ... 
Using docker image docker:dind ID=sha256:559dd16b4e0a64d9de2447d3de234743046443f770bf5226f45f9b7f9c68887b for docker service... 
ERROR: Preparation failed: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 
Will be retried in 3s ... 
Using Docker executor with image docker:latest ... 
Starting service docker:dind ... 
Pulling docker image docker:dind ... 
Using docker image docker:dind ID=sha256:559dd16b4e0a64d9de2447d3de234743046443f770bf5226f45f9b7f9c68887b for docker service... 
ERROR: Preparation failed: Error response from daemon: Conflict. The container name "/runner-8b9eca1e-project-140-concurrent-0-docker" is already in use by container "db166f7894856c245c6a4f5318326c5f3b6ab82d82157961d18b079444153113". You have to remove (or rename) that container to be able to reuse that name. 
Will be retried in 3s ... 
Using Docker executor with image docker:latest ... 
Starting service docker:dind ... 
Pulling docker image docker:dind ... 
Using docker image docker:dind ID=sha256:559dd16b4e0a64d9de2447d3de234743046443f770bf5226f45f9b7f9c68887b for docker service... 
ERROR: Preparation failed: Error response from daemon: Conflict. The container name "/runner-8b9eca1e-project-140-concurrent-0-docker" is already in use by container "db166f7894856c245c6a4f5318326c5f3b6ab82d82157961d18b079444153113". You have to remove (or rename) that container to be able to reuse that name. 
Will be retried in 3s ... 
ERROR: Job failed (system failure): Error response from daemon: Conflict. The container name "/runner-8b9eca1e-project-140-concurrent-0-docker" is already in use by container "db166f7894856c245c6a4f5318326c5f3b6ab82d82157961d18b079444153113". You have to remove (or rename) that container to be able to reuse that name. 

答えて

0

異なるステージでは、アーティファクトを互いに共有するだけですが、別々のドッカーコンテナです。つまり、構築段階でdocker-compose up -dを実行すると、コンテナはテストステージで実行されていません。

ditとgitlab-ciを組み合わせることは、非常に特定の使用例でのみ必要です。あなたの場合、あなたはまったく傷つく必要はありません。 gitlab-ciはすでにドッカー上で動作しているので、テストステップでphp-fpmイメージを使用するだけです。

test: 
    stage: test 
    image: <your php-fpm image here> 
    script: 
    - cd /app 
    - composer install 
    - make runTests 
関連する問題