2017-05-04 6 views
0

Gitlab CIを使用してdeployジョブを実行する場合、sshを実行する必要があります。私はhttps://hub.docker.com/r/nmfzone/ssh-client-light/ドッカー画像を使用します。Alpine Dockerベースの画像でgitlab-ci.ymlスクリプトを実行中にエラーが発生しました

しかし、私はできません。このエラーがスローされたためです。

Checking out 32af65e1 as development... 
Skipping Git submodules setup 
Unknown cipher type 'if [ -x /usr/local/bin/bash ]; then 
    exec /usr/local/bin/bash 
elif [ -x /usr/bin/bash ]; then 
    exec /usr/bin/bash 
elif [ -x /bin/bash ]; then 
    exec /bin/bash 
elif [ -x /usr/local/bin/sh ]; then 
    exec /usr/local/bin/sh 
elif [ -x /usr/bin/sh ]; then 
    exec /usr/bin/sh 
elif [ -x /bin/sh ]; then 
    exec /bin/sh 
else 
    echo shell not found 
    exit 1 
fi 

どうすれば修正できますか?

https://hub.docker.com/r/nmfzone/ssh-client-light/イメージをビルドするときに、この設定をDockerfileで使用しました。

FROM gliderlabs/alpine:3.4 

RUN apk update && \ 
    apk add --update bash && \ 
    apk add openssh-client 

# Security fix for CVE-2016-0777 and CVE-2016-0778 
RUN echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config 

ENTRYPOINT ["ssh"] 

答えて

1

どちらかgitlabのsshのエグゼキュータを使用するか、適切なシェルにあなたのドッキングウィンドウのエントリポイントを変更し、スクリプト内のsshを実行します。 Gitlabのドッカーランナーは、シェルではないエントリポイントをサポートしていません。

+0

ありがとうございました。あなたは正しい。 Dockerfileにエントリポイントを設定するのを忘れました。 'ENTRYPOINT ["/bin/bash "、" -c "]'で十分です。 – nmfzone

1

bashシェルをインストールしている場合は、この問題を抱えている人のために、Dockerfileに次のようなものが必要です。

ENTRYPOINT ["/bin/bash", "-c"]