在gitlab runner中使用docker映像执行shell脚本失败
我正在跟踪一个关于将docker图像从GitLab推送到AWS Fargate的事件。在某些情况下,会从gitlab-ci.yml调用一个shell脚本,以使用aws cli登录 我一直在试图解决这个问题,在此过程中,我创建了一个非常小的.gitlab ci.yml来重现这个问题:在gitlab runner中使用docker映像执行shell脚本失败,docker,gitlab,gitlab-ci,aws-fargate,Docker,Gitlab,Gitlab Ci,Aws Fargate,我正在跟踪一个关于将docker图像从GitLab推送到AWS Fargate的事件。在某些情况下,会从gitlab-ci.yml调用一个shell脚本,以使用aws cli登录 我一直在试图解决这个问题,在此过程中,我创建了一个非常小的.gitlab ci.yml来重现这个问题: image: docker:latest stages: - test build_test: stage: test image: name: docker:latest services
image: docker:latest
stages:
- test
build_test:
stage: test
image:
name: docker:latest
services:
- docker:dind
environment:
name: production
script:
- source script/deploy.sh
shell脚本(script/deploy.sh)为:
这将在GitLab上提供以下输出:
[...]
Running on runner-fa6cab46-project-11081405-concurrent-0 via runner-fa6cab46-srm-1551436016-4b73cd2c...
Cloning repository...
Cloning into '/builds/test-repo'...
Checking out 21d6f4dd as master...
Skipping Git submodules setup
$ source script/deploy.sh
/bin/sh: script/deploy.sh: line 2:
: not found
ERROR: Job failed: exit code 127
根据Docker最新或dind图像中可能没有shell或bash,但我如何解决这个问题?我使用的是公共gitlab Runner。您可以尝试使用不同的映像(例如python),您是否在Windows主机上?脚本有Windows行结尾吗?@DavidMaze啊!我觉得很傻。事实证明,Windows行结尾确实是个问题。谢谢如果你再加一个答案,我会接受的。
[...]
Running on runner-fa6cab46-project-11081405-concurrent-0 via runner-fa6cab46-srm-1551436016-4b73cd2c...
Cloning repository...
Cloning into '/builds/test-repo'...
Checking out 21d6f4dd as master...
Skipping Git submodules setup
$ source script/deploy.sh
/bin/sh: script/deploy.sh: line 2:
: not found
ERROR: Job failed: exit code 127