Gitlab-CI PHP 可执行文件返回错误代码255
Gitlab-CI PHP executable returning error code 255
我最近在我的自托管 GitLab CE 实例中设置了 GitLab-CI。我为特定项目创建了一个 运行ner 并共享了一个 运行ner.
我的 /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 相同的错误(build:7.0 in .gitlab-ci.yml)。出于调试原因,我添加了 php -d
来显示错误,但没有显示任何内容。
对于具有完全相同 .gitlab-ci.yml
文件的较小项目,另一个(私有)管道按预期工作。我也尝试从一个 运行ner 切换到另一个,但它在任何一个上都不起作用。
由于我是docker和CI的新手,一般来说,我对如何正确调试这种情况知之甚少,也许增加php memory_limit
以某种方式或将错误输出到 stderr。
有什么想法吗?
原来有一个自动加载器使用@call 执行ext-mysqli 函数。该应用程序一团糟。
我最近在我的自托管 GitLab CE 实例中设置了 GitLab-CI。我为特定项目创建了一个 运行ner 并共享了一个 运行ner.
我的 /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 相同的错误(build:7.0 in .gitlab-ci.yml)。出于调试原因,我添加了 php -d
来显示错误,但没有显示任何内容。
对于具有完全相同 .gitlab-ci.yml
文件的较小项目,另一个(私有)管道按预期工作。我也尝试从一个 运行ner 切换到另一个,但它在任何一个上都不起作用。
由于我是docker和CI的新手,一般来说,我对如何正确调试这种情况知之甚少,也许增加php memory_limit 以某种方式或将错误输出到 stderr。
有什么想法吗?
原来有一个自动加载器使用@call 执行ext-mysqli 函数。该应用程序一团糟。