2017-06-04 27 views
0

私は最近自分のホストGitLab CEインスタンスにGitLab-CIを設定しました。特定のプロジェクトとランナーを1人ランナーを作成しました。エラーコード255を返すGitlab-CI PHP実行ファイル

マイ/etc/gitlab-runner/config.tomlは以下の通りです:

concurrent = 1 
check_interval = 0 

[[runners]] 
    name = "project runner" 
    url = "https://gitlab.domain.com/ci" 
    token = "SECRET" 
    executor = "docker" 
    [runners.docker] 
    tls_verify = false 
    image = "geertw/docker-php-ci:7.0-no-xdebug" 
    privileged = false 
    disable_cache = false 
    volumes = ["/cache"] 
    shm_size = 0 
    [runners.cache] 

[[runners]] 
    name = "shared runner" 
    url = "https://gitlab.domain.com" 
    token = "SECRET" 
    executor = "docker" 
    [runners.docker] 
    tls_verify = false 
    image = "geertw/docker-php-ci:7.0-no-xdebug" 
    privileged = false 
    disable_cache = false 
    volumes = ["/cache"] 
    shm_size = 0 
    [runners.cache] 

その後、私は私のcomposer.jsonファイルにカスタムスクリプトを追加しました:

... 

"scripts": { 
    "build": [ 
     "@composer install --no-progress --no-interaction --no-suggest", 
     "@lint" 
    ], 
    "lint": "php -d display_errors -d display_startup_errors ./vendor/bin/parallel-lint --exclude vendor ." 
} 

、スクリプトが私の.gitlab-ci.ymlファイルの一部です:

before_script: 
    - php -v 

services: 
    - mysql:latest 

variables: 
    MYSQL_DATABASE: "database" 
    MYSQL_ROOT_PASSWORD: "password" 

build:7.0: 
    image: geertw/docker-php-ci:7.0 
    script: 
    - composer build 
    - php vendor/bin/phpunit --coverage-text --colors=never 

build:7.1: 
    image: geertw/docker-php-ci:7.1-no-xdebug 
    script: 
    - composer build 

cache: 
    paths: 
    - vendor/ 

GitLabでパイプラインを実行するとエラーが表示されます:

> php -d display_errors -d display_startup_errors ./vendor/bin/parallel-lint --exclude vendor . 
Script php -d display_errors -d display_startup_errors ./vendor/bin/parallel-lint --exclude vendor . handling the lint event returned with error code 255 
ERROR: Job failed: exit code 1 

ローカルでcomposer lintを実行すると、期待どおりに動作します。また、コメントアウトしようとしましたが、PHPUnit(ビルド:7.0 in .gitlab-ci.yml)で同じエラーが発生しました。デバッグの理由から、エラーを表示するためにphp -dを追加しましたが、何も表示されていません。

正確に同じ.gitlab-ci.ymlファイルを持つ小さなプロジェクトでは、他の(プライベート)パイプラインが期待通りに機能します。私はまた1つのランナーから別のランナーに切り替えることを試みたが、それはどちらでも動作しない。

私はドッカーとCIの初心者ですから、この状況を適切にデバッグする方法はほとんど分かっていません。おそらくphp memory_limit を増やしたり、エラーをstderrに出力したりします。

アイデア?

+0

パラレルリントのソースからヒントを得ることはできますか?:https://github.com/JakubOnderka/PHP-Parallel-Lint/blob/master/parallel-lint.php –

+0

また、あなたのコンテナphp.iniにはdisplay_errorsなどがありますか?たぶんエラーが表示されない理由は? –

+0

私はデフォルトのgitlab-ci php 7コンテナを使用しています。正直なところ、display_errorsが有効になっているかどうかわかりません。しかし、すべてのエラーを表示するディレクティブを追加する 'php -d'を追加しました。 – falnyr

答えて

0

@callでext-mysqli関数を実行するオートローダーがありました。アプリは混乱している。

関連する問題