Alpine Docker based Image下的错误运行 gitlab-ci.yml脚本

Error running gitlab-ci.yml script under Alpine Docker based Image

所以,当 运行 使用 Gitlab CI 部署作业时,我需要 运行 ssh。我使用 https://hub.docker.com/r/nmfzone/ssh-client-light/ docker 图片。

但是,我不能。因为抛出了这个错误。

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"]

要么使用 gitlab 的 ssh 执行器,要么在脚本中将 docker 的入口点更改为适当的 shell 和 运行 ssh。 Gitlab 的 docker 运行ner 不支持不是 shell.

的入口点

对于也有此问题的人,如果您安装了 bash shell.

,则您的 Dockerfile 中需要这样的东西
ENTRYPOINT ["/bin/bash", "-c"]