2017-05-04 3 views
0

Gitlab CI를 사용하여 배포 작업을 실행할 때 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"]