Git clone com ssh na construção da imagem do docker

0

Estou construindo uma imagem de janela de encaixe, e eu quero para clonar um repositório de bitbucket.

Se eu criar um recipiente 'debian' e executar passo-a-passo, tudo funciona bem. Mas quando tento criar a imagem, não funciona.

Eu adicionei a chave para bitbucket configurações.

Aqui está meu Dockerfile

FROM debian:stretch

RUN apt-get update && apt-get -y upgrade && apt-get -y install nginx curl software-properties-common gnupg git
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y nodejs

RUN mkdir /backend

RUN npm install pm2 ts-node -g

WORKDIR /backend
RUN mkdir /root/.ssh
RUN echo -e "-----BEGIN RSA PRIVATE KEY-----\n(...)-----END RSA PRIVATE KEY-----" >> /root/.ssh/id_rsa
RUN chmod 400 /root/.ssh/id_rsa
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
RUN git clone [email protected]:xxx/xxx.git

Aqui está o erro:

Cloning into 'xxx'...
Warning: Permanently added the RSA host key for IP address '104.192.143.3' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Como posso criar esta imagem para funcionar corretamente?

    
por Victor 01.02.2018 / 18:54

1 resposta

1

Se você tiver certeza de que a chave pública correta está em bitbucket, a resposta (na minha experiência) é quase sempre as permissões na pasta .ssh e nos arquivos. Vejo acima que você acabou de criar essa pasta e a chave privada, mas não atualiza as permissões.

Permissões esperadas

.ssh deve ser:

drwx------  2 user user 4096 Feb  6 11:18 .ssh

A chave privada:

-rw-------  1 user user 1675 Feb  6 11:18 id_rsa

Finalmente, o seu diretório inicial deve, no mínimo, não ser gravável por grupo ou outro, geralmente você deseja:

drwx------ 84 user user 16384 Feb 16 18:23 user

Colocando tudo junto:

chmod go-w /root
chmod 700 /root/.ssh
chmod 600 /root/.ssh/id_rsa
    
por 16.02.2018 / 20:09

Tags