A clonagem do Dockerfile a partir do gitlab privado com o ssh e a chave de implementação

1

(EDIT) Este problema estava acontecendo também do meu laptop usando root e meu usuário, que poderia receber a saudação ao tentar usar o ssh com o usuário git. Então tentei o ansible playbook e levantou erros para o repo também. Tentei outro e que clones impecável. O problema, então, não parece ser com git, docker ou ssh, mas com a configuração do gitlab.

Em um Dockerfile, estou tentando c repositórios privados hospedados em um servidor da empresa executando o gitlab e configurado com uma porta ssh não padrão .

Isto é o que eu esperava rodar (junto com alguns parâmetros no arquivo de configuração ssh)

RUN git clone [email protected]:GroupName/repo_name.git

Coisas que eu já verifiquei:

  • O repositório tem uma chave de implantação e está ativo.
  • Automatizando com Ansible em vez de docker, ele pode conectar e clonar repos.
  • A chave é chamada id_rsa e está dentro de ~ / .ssh /
  • Tentei com o ssh-agent e parece ok (embora eu especifique o arquivo na configuração e não precise dele)

    Identity added: /opt/.ssh/id_rsa (/opt/.ssh/id_rsa) 
    
  • O ~ / .ssh / config tem o seguinte:

    Host *
      StrictHostKeyChecking no
      PubkeyAcceptedKeyTypes +ssh-rsa
      PasswordAuthentication no
      User git
      ForwardAgent yes
      Identityfile /opt/.ssh/id_rsa # /opt is the home of the user RUNning the command in docker
      port 22022
    

EXECUTANDO isso no contêiner:

ssh -vT -i /opt/.ssh/id_rsa [email protected]:GroupName/repo_name.git

Obtém o resultado

Welcome to GitLab, Anonymous!

Mas o comando git clone fica:

Cloning into 'repo_name'...
GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights 
and the repository exists.
The command '/bin/sh -c git clone [email protected]:GroupName/repo_name.git;' returned a non-zero code: 128
    
por Rubén Cabrera 04.10.2017 / 18:04

1 resposta

0

Onde está ~/.ssh/config ? As compilações do Docker são feitas como raiz, para que a configuração precise estar em /root/.ssh/config

    
por 04.10.2017 / 19:12