Gitlab Runner 折叠了 docker 执行器的多行命令

Jan*_*uka 5 gitlab docker

当其中一项作业使用执行器和我构建的映像之一gitlab ci时,我收到此错误。gitlab-runnerdocker

这是一项失败的工作gitlab-ci.yml

image:
  name: 19950818/banu-terraform-ansible-cicd
.
.
.
create-ssh-key-pair:
  stage: create-ssh-key-pair
  script:
    - pwd
    - mkdir -p ~/.ssh

    # below lines gives the error
    - |
      # !/bin/bash
      FILE=~/.ssh/id_rsa
      if [ -f "$FILE" ]; then
        echo "$FILE exists."
      else 

        ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa 2>/dev/null <<< y >/dev/null
      fi

Run Code Online (Sandbox Code Playgroud)

但是当执行者执行时这些行不会出错shell

这是Dockerfile图像的19950818/banu-terraform-ansible-cicd

FROM centos:7

ENV VER "0.12.9"

RUN yum update -y && yum install wget -y && yum install unzip -y
RUN yum install epel-release -y && yum install ansible -y

RUN wget https://releases.hashicorp.com/terraform/${VER}/terraform_${VER}_linux_amd64.zip
RUN unzip terraform_${VER}_linux_amd64.zip
RUN mv terraform /usr/local/bin/  
RUN rm -rf terraform_${VER}_linux_amd64.zip
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我发生了什么事以及如何克服这个问题吗?

我的疑问是ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa 2>/dev/null <<< y >/dev/null线路导致了错误。

小智 11

改变- |- >。​

另请参阅GitLab Runner Issue #166