J'ai une application qui exécute divers trucs amusants avec Git (comme exécuter git clone et git push) et j'essaie de la dockeriser.
Je rencontre cependant un problème : je dois pouvoir ajouter une clé SSH au conteneur pour que l'"utilisateur" du conteneur puisse l'utiliser.
J'ai essayé de le copier dans /root/.ssh/
en changeant $HOME
créer un wrapper git ssh, et toujours pas de chance.
Voici le Dockerfile pour référence :
#DOCKER-VERSION 0.3.4
from ubuntu:12.04
RUN apt-get update
RUN apt-get install python-software-properties python g++ make git-core openssh-server -y
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://archive.ubuntu.com/ubuntu precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install nodejs -y
ADD . /src
ADD ../../home/ubuntu/.ssh/id_rsa /root/.ssh/id_rsa
RUN cd /src; npm install
EXPOSE 808:808
CMD [ "node", "/src/app.js"]
app.js
exécute les commandes git comme git pull
29 votes
Quiconque aborde cette question doit penser à la finalité du jeu, car il est facile de créer une faille de sécurité et de l'oublier si l'on ne fait pas attention. Lisez toutes les réponses et choisissez judicieusement.
0 votes
Il est disponible dès maintenant, voir stackoverflow.com/a/66301568/9926721
0 votes
J'ai une réponse aquí en utilisant
ssh-add
qui est considéré comme sûr (comme Josh Habdas le dit plus haut, choisissez judicieusement). J'ai eu de réelles difficultés à le faire fonctionner sur Ubuntu 20.04, principalement à cause du fait que le débogage de Docker est difficile (cf. Débogage de la construction Docker ) mais aussi à cause d'AppArmor et du nom de la clé qui par défaut doit êtreid_rsa
.