SSH-Agent-Weiterleitung während des Docker-Builds

9

Beim Erstellen eines Docker-Images über dockerfile muss ich einen GitHub-Repo klonen. Ich habe meine öffentlichen SSH-Schlüssel meinem Git-Hub-Account hinzugefügt und kann den Repo von meinem Docker-Host klonen. Während ich sehe, dass ich den SSH-Schlüssel des Docker-Hosts verwenden kann, indem ich die $SSH_AUTH_SOCK env-Variable zum Zeitpunkt des Andockmanövers abbilde, wie docker run --rm -it --name container_name \ -v $(dirname $SSH_AUTH_SOCK):$(dirname $SSH_AUTH_SOCK) \ -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK my_image .

Wie kann ich das gleiche bei der Docker-Erstellung tun?

    
Anand 14.04.2017, 19:41
quelle

2 Antworten

0

Leider können Sie Ihr ssh-Socket nicht an den Erstellungscontainer weiterleiten, da Mounts für die Erstellung von Zeitdatenträgern derzeit nicht in Docker unterstützt werden.

Dies ist seit einiger Zeit ein Diskussionsthema. Sehen Sie sich die folgenden Ausgaben auf GitHub als Referenz an:

Wie Sie sehen können, wurde diese Funktion für verschiedene Anwendungsfälle mehrfach angefordert. Bislang zögerten die Betreuer, dieses Problem anzugehen, da sie der Ansicht sind, dass das Volumen während des Builds steigen würde, was die Portabilität beeinträchtigen würde:

  

Das Ergebnis eines Builds sollte unabhängig vom zugrunde liegenden Host sein

Wie in dieser Diskussion beschrieben.

    
nardeas 07.11.2017 19:07
quelle
0

Lösen. Erstellen Sie ein Bash-Skript (~ / bin / docker-compose oder like):

%Vor%

Und in Dockerfile mit socat:

%Vor%

Führen Sie dann docker-compose build

aus     
Samoilenko Yuri 30.11.2017 07:22
quelle