이 docker 파일을 사용하여 docker 이미지를 빌드하려고 하는데 bitbucket에서 일부 개인 저장소를 복제해야 합니다.
FROM ubuntu
RUN chsh -s /bin/bash
RUN apt-get update
RUN apt-get install -y git python-pip
ADD private_key_for_deployment /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
RUN echo "StrictHostKeyChecking no" >> /root/.ssh/config
RUN echo >> /root/.ssh/config
RUN echo "Host bitbucket.org" >> /root/.ssh/config
RUN cat /root/.ssh/id_rsa
RUN mkdir -p /usr/src/app/
COPY requirements.txt /usr/src/app/
RUN cat /root/.ssh/config
WORKDIR /usr/src/app/
RUN echo "IdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config
RUN eval "$(ssh-agent)" && \
ssh-add && \
ssh-add -l \
pip install -U -r requirements.txt
COPY . /usr/src/app
WORKDIR /usr/src/app/data_service/
CMD ["python" "data_service.py"]
나는 또한 그것을 시도했다ssh-add -l
이 키는 Docker 컨테이너 내부에서 완벽하게 작동한다고 말씀드리고 싶습니다. 키를 생성하고 SSH 에이전트를 시작한 다음 이 컨테이너 내에 ID를 추가하면 거기에 저장소를 복제할 수 있습니다.
편집 1
Docker 이미지를 빌드할 때 이런 일이 발생합니다.
15단계: eval "$(ssh-agent)" && ssh-add && pip install -U -rrequirements.txt
실행 ---> 2b9a79fa7cf3
에이전트 pid 8 에서 실행
/root/.ssh/id_rsa의 비밀번호를 입력하십시오: 2015/ 07/02 22:26:46 [/bin/sh -c eval "$(ssh-agent)" && ssh-add && pip install -U -rrequirements.txt] 명령은 0이 아닌 코드를 반환합니다. 1
답변1
개인 키를 로 지정합니다 /root/.ssh/id_rsa
. 스크립트가 루트로 실행되고 있습니까? 여기에서는 "IdentityFile ~/.ssh/id_rsa" >> /root/.ssh/config
구체적으로 /root/.ssh/id_rsa
. 잘못된 키를 전달한 것처럼 동작합니다.
나는 도커를 사용하지 않지만 아마도 이것이 귀하의 문제와 관련이 있을 수 있습니다.