gpt4 book ai didi

docker - 语法错误的 Gitlab-runner

转载 作者:IT老高 更新时间:2023-10-28 12:45:31 27 4
gpt4 key购买 nike

我最近使用了 docker 镜像 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。

最佳答案

正如 #1550 所指出的那样, 问题似乎来自在 lines 16-31 之间的 bash.go 文件中完成的 shell 检测。它是在没有换行符的情况下注入(inject)的,因此会产生您自己遇到的语法错误。

由于您的 Dockerfile 中有一个自定义入口点,并且您似乎没有将引号传递给 exec here 的参数,这就是我认为失败的地方,应该修改。

改成

exec "${*}"

关于docker - 语法错误的 Gitlab-runner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43711769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com