我最近使用docker image 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
我也不知道如何调试这个,也没有在容器或测试脚本中看到任何问题。这是.gitlab-ci.yml
:
before_script:
- composer install
test_7_1:
image: pretzlaw/php:7.1-apache
script: ls
这可能是某个地方的容器问题,但我不明白。手动执行此操作(使用最近失败的docker容器)一切正常:
docker container exec 68c7b5448a56 ls
bin
builds
...
如何追溯问题? 这到底是什么?
适用于GitLab 9.1.1-ce.0。
答案 0 :(得分:2)
正如#1550所指出的那样,问题似乎来自bash.go
文件中Dockerfile
文件中的shell检测,它是在没有换行符的情况下注入的,因此会产生语法错误你是你自己经历的。
由于您的exec "${*}"
中有自定义入口点,并且看起来您没有将引号传递给exec lines 16-31的参数,我认为这是失败的,应该进行修改。
将其更改为
pom.xml
答案 1 :(得分:0)
作为 Balthazar 提到的错误的解决方法,尝试覆盖 .gitlab-ci.yml
中的入口点,如 GitLab docs:
对于 Docker 17.06 及更高版本:
image:
name: super/sql:experimental
entrypoint: [""]
对于 Docker 17.03 及更早版本:
image:
name: super/sql:experimental
entrypoint: ["/bin/sh", "-c"]