Подтвердить что ты не робот

Gitlab-runner с синтаксической ошибкой

Недавно я использовал изображение докера gitlab/gitlab-runner: 9.1.0 в сочетании с контейнером gitlab, чтобы иметь некоторый CI. Произошла ошибка и похожие запросы поддержки, рекомендованные с использованием другой версии, поэтому я попытался с помощью :latest и некоторых :1.11 тоже. К сожалению, он продолжает говорить мне об этой ошибке:

Running with gitlab-ci-multi-runner 1.11.4 (5e7ba4a)
  on foo (02cdacdc)
Using Docker executor with image pretzlaw/php:7.1-apache ...
Starting service mariadb:latest ...
Pulling docker image mariadb:latest ...
Waiting for services to be up and running...
Pulling docker image pretzlaw/php:7.1-apache ...
Running on runner-02cdacdc-project-7-concurrent-0 via 9d1d33dc9212...
Fetching changes...
HEAD is now at 7580815 QA: CI Lint
From http://idgaf.example.org/foo/bar
   7580815..affeede  develop    -> origin/develop
Checking out affeede as develop...
Skipping Git submodules setup
[: 1: [: Syntax error: end of file unexpected
[: 1: [: Syntax error: end of file unexpected
ERROR: Job failed: exit code 2

Также я не знаю, как отлаживать это, и не вижу никаких проблем в моем контейнере или тесте script. Это .gitlab-ci.yml:

before_script:
  - composer install

test_7_1:
  image: pretzlaw/php:7.1-apache
  script: ls

Это может быть проблема с контейнером, но я не понимаю. Выполняя это вручную (с недавним неудачным контейнером докера), все работает нормально:

docker container exec 68c7b5448a56 ls
bin
builds
...

Как мне отследить проблему? В чем дело?

Это для GitLab 9.1.1-ce.0.

4b9b3361

Ответ 1

Как указано # 1550, проблема, похоже, происходит из обнаружения оболочки, выполненного в файле bash.go между строки 16-31, которые он вводится без символов новой строки и, таким образом, создает синтаксическую ошибку, которую вы сами испытываете.

Поскольку у вас есть пользовательская точка входа в Dockerfile, и похоже, что вы не передали кавычки аргументам exec здесь, что то, что я думаю, терпит неудачу и должно быть изменено.

Измените его на

exec "${*}"