2014-10-02 19 views
5

Ich habe zwei private Repositories auf GitHub genannt dashboard und ui. Ich definierte ui als ein Git-Submodul von dashboard, und ich konfigurierte Docker zu Autobuild dashboard auf alle Änderungen in einem bestimmten Zweig.docker autobuild mit git private submodul

Ich lese diese Dokumentation https://docs.docker.com/docker-hub/builds/, aber wenn ich versuche, den Deploy-Schlüssel von Docker in meinen ui Einstellungen festgelegt, heißt es "Schlüssel bereits verwendet". Tatsächlich wird dieser Schlüssel bereits von dashboard verwendet, damit docker dieses Repo automatisch erstellen kann!

Hier ist mein Docker Buildprotokoll:

Error:

Failed to clone repository: Cloning into '/tmp/build_byaxhis7sznbvmb6wgwzm6n'... 
Submodule 'app/styles/ui' ([email protected]:yllieth/ui.git) registered for path 'app/styles/ui' 
Cloning into 'app/styles/ui'... 


Warning: Permanently added 'github.com,192.30.252.130' (RSA) to the list of known hosts. 
ERROR: Repository not found. 
fatal: The remote end hung up unexpectedly 
Clone of '[email protected]:yllieth/ui.git' into submodule path 'app/styles/ui' failed 

Dockerfile: None

Docker finden keine Dockerfile auch wenn ich in meinem dashboard Repo definiert haben. Daher kann ich keine Anweisungen geben oder einen weiteren SSH-Schlüssel hinzufügen.

Wenn jemand eine Idee über die Verwendung von Autobuild mit privaten Repos und Git-Submodul hat, bin ich interessiert !!

+0

Bekam das gleiche Problem. Kann jemand bestätigen, dass private Submodule in automatisierten Builds funktionieren sollten? –

Antwort

2

Das ist hässlich, aber man könnte eine maschinen Benutzer erstellen, wie Github sie nennt, und fügen Sie den deploy-Taste, um es als der Schlüssel des Benutzers (nachdem er aus deploy Tasten zu entfernen). Fügen Sie diesen Benutzer dann als schreibgeschützten Benutzer zu jedem für diesen Build erforderlichen Repo hinzu.

Ich warte darauf, vom Docker Team auf etwas Besseres zu hören.

+1

Bestätigt, um auch zu arbeiten –

2

Wenn Ihr GitHub-Repository Links zu privaten Submodulen enthält, erhalten Sie in Ihrem Build eine Fehlermeldung. Normalerweise richtet der Docker Hub einen Bereitstellungsschlüssel in Ihrem GitHub-Repository ein. Leider erlaubt GitHub einem Repository-Bereitstellungsschlüssel nur den Zugriff auf ein einzelnes Repository. Um dieses Problem zu umgehen, müssen Sie in GitHub ein dediziertes Benutzerkonto erstellen und den Bereitstellungsschlüssel des automatisierten Builds an dieses Konto anhängen. Dieses dedizierte Build-Konto kann auf Nur-Lese-Zugriff auf nur die zum Erstellen erforderlichen Repositorys beschränkt werden.

Ein Typ hat bereits die Pull-Anforderung für das Update in Docker document initiiert. Er fügte auch die Screenshots hinzu, die Ihnen bei diesem Problem helfen könnten.

Verwandte Themen