Dockerfile pour le clonage privé repo git

j'essaie de cloner le dépôt git privé de github. J'ai fait un Dockerfile comme ceci:

FROM ubuntu:12.04

RUN apt-get update
RUN apt-get install -y git
RUN mkdir -p /root/.ssh/
ADD ./id_rsa /root/.ssh/id_rsa
RUN git clone git@github.com:usr/repo.git

j'utilise cette carte avec cette clé très bien localement, donc il semble que je manque quelque chose à l'intérieur de docker.

une autre chose qui me manque peut-être, c'est que les deux ~ et $HOME à l'intérieur de docker point / au lieu de /root, mais je ne suis pas sûr que cela puisse être lié.

17
demandé sur Kostiantyn Rybnikov 2013-10-28 23:57:58

3 réponses

Quel est le résultat du processus de construction?

au hasard: Essayez de chmod 600 la clé privée.

Si ça ne fonctionne toujours pas, essayez de RUN ssh -v git@github.com (après avoir ajouté la touche); la sortie doit expliquer ce qui se passe.

20
répondu jpetazzo 2014-08-19 02:44:20
>~/.SSH / known_hosts

le clavier fonctionne très bien puisqu'il accepte l'hôte. La réponse complète suivante a fonctionné:

RUN mkdir -p /root/.ssh
RUN cp /var/my-app/id_rsa /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts

Aussi, comme il est mentionné:

RUN ssh -v git@github.com

^ Grande façon de déboguer le flux. C'est comme ça que j'ai réalisé que j'avais besoin de la clé >> known_hosts

14
répondu Dan Sabin 2014-11-19 05:00:39

(ne Sera probablement pas s'adapter à vos besoins)

Il y a une autre approche: https://stackoverflow.com/a/29464430/990356

paramètres > jetons D'accès personnels et générer un token d'accès personnel avec repo champ d'application activée. Maintenant vous pouvez faire git clone https://MY_TOKEN@github.com/user-or-org/repo

Avantages:

  • approche très simple
  • jeton peut facilement être révoqué

contre:

  • si quelqu'un a accès au fichier Dockerfile il a accès au token

Pour résoudre ce problème, vous pouvez utiliser une variable d'environnement pour stocker le jeton

2
répondu tanguy_k 2017-05-23 12:34:14