繁体   English   中英

Gitlab-CI PHP可执行文件返回错误代码255

[英]Gitlab-CI PHP executable returning error code 255

我最近在自托管的GitLab CE实例中设置了GitLab-CI。 我为特定项目创建了一个跑步者,并为共享项目创建了一个跑步者。

我的/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(.gitlab-ci.yml中的build:7.0)中收到相同的错误。 出于调试原因,我添加了php -d来显示错误, php -d显示任何内容。

另一个(私有)管道可以正常使用较小的项目,该项目具有完全相同的.gitlab-ci.yml文件。 我还尝试了从一个跑步者切换到另一个跑步者,但是在任何一个上均不起作用。

由于我是Docker和CI的新手,所以我对如何正确调试这种情况几乎一无所知,也许以某种方式增加php memory_limit或将错误输出到stderr。

有任何想法吗?

原来有一个自动加载器使用@call执行ext-mysqli函数。 该应用程序一团糟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM