2017-04-10 10 views
1

私はGitlab CI環境をテストプロジェクトhttps://gitlab.com/khpeek/CI-testで習得しようとしています。プロジェクトは、以下の.gitlab-ci.ymlがありますPythonの 'onbuild'イメージでGitLab CIを使用すると、requirements.txtのパッケージがインストールされていないようです。

image: python:2.7-onbuild 
services: 
    - rethinkdb:latest 
test_job: 
    script: 
    - pytest 

問題はCIパイプラインのtest_jobジョブは次のエラーメッセージで失敗していることである:

Running with gitlab-ci-multi-runner 9.0.1 (a3da309) 
    on docker-auto-scale (e11ae361) 
Using Docker executor with image python:2.7-onbuild ... 
Starting service rethinkdb:latest ... 
Pulling docker image rethinkdb:latest ... 
Using docker image rethinkdb:latest ID=sha256:23ecfb08823bc5483c6a955b077a9bc82899a0df2f33899b64992345256f22dd for service rethinkdb... 
Waiting for services to be up and running... 
Using docker image sha256:aaecf574604a31dd49a9d4151b11739837e4469df1cf7b558787048ce4ba81aa ID=sha256:aaecf574604a31dd49a9d4151b11739837e4469df1cf7b558787048ce4ba81aa for predefined container... 
Pulling docker image python:2.7-onbuild ... 
Using docker image python:2.7-onbuild ID=sha256:5754a7fac135b9cae7e02e34cc7ba941f03a33fb00cf31f12fbb71b8d389ece2 for build container... 
Running on runner-e11ae361-project-3083420-concurrent-0 via runner-e11ae361-machine-1491819341-82630004-digital-ocean-2gb... 
Cloning repository... 
Cloning into '/builds/khpeek/CI-test'... 
Checking out d0937f33 as master... 
Skipping Git submodules setup 
$ pytest 
/bin/bash: line 56: pytest: command not found 
ERROR: Job failed: exit code 1 

しかし、とリポジトリ内requirements.txtがあります単線pytest==3.0.7が入っています。しかし、python:2.7-onbuildイメージのDockerfileから私には見えますが、pip install -r requirements.txtはビルド時に実行する必要があります。では、なぜpytestが見つからないのですか?

答えて

1

あなたがリンクしたDockerfileを見ると、pip install -r requirements.txtonbuildコマンドの一部です。これは、最初のコンテナから新しいコンテナを作成し、一連の要件をインストールする場合に便利です。したがって、pip install -r requirements.txtコマンドは、CIパイプラインのコンテナ内で実行されません。その場合、gitlabリポジトリがクローンされる前であっても、最初の時点で実行されます。

私はあなたがこのよう

image: python:2.7-onbuild 
services: 
    - rethinkdb:latest 
test_job: 
    script: 
    - pip install -r requirements.txt 
    - pytest 
0

あなた.gitlab-ci.ymlファイルを変更することをお勧め問題が断続的のようです:それは(最初に失敗した)テストを実行するために61分かかった最初の時間は、今は約かかりますが、 1分(下記のスクリーングラブを参照)。

参考のため、テストリポジトリはhttps://gitlab.com/khpeek/CI-testです。 (私は成功するためにpip installbefore_scriptを追加しなければならなかった)。

enter image description here

関連する問題