Heim >Backend-Entwicklung >Golang >Wie dockerisiere ich Go-Apps mithilfe privater GitLab-Module mit SSH-Authentifizierung?
Go-Apps mit privaten GitLab-Modulen dockerisieren
Beim Erstellen Ihrer Go-Apps in einem Docker-Container mit privaten GitLab-Modulen ist die Einrichtung von entscheidender Bedeutung Effektive SSH-Authentifizierung. Hier ist ein verbesserter Ansatz, der Probleme mit der referenzierten Frage behebt:
Aktualisierte Docker-Datei
Um ein privates Paket von GitLab abzurufen, ändern Sie die folgenden Zeilen in Ihrer Docker-Datei:
# Allow private repo pull RUN git config --global url."https://my-personal-access-token:[email protected]/".insteadOf "https://gitlab.com/"
SSH-Konfiguration
Aktualisieren Sie die folgenden Befehle So fügen Sie Ihren SSH-Schlüssel hinzu und konfigurieren Git für die Verwendung von SSH:
RUN mkdir ~/.ssh RUN touch ~/.ssh/known_hosts RUN ssh-keyscan -t rsa gitlab.com >> ~/.ssh/known_hosts
Build Command
Verwenden Sie die experimentelle Syntax von Docker und geben Sie die Option --mount=type=ssh an So aktivieren Sie die SSH-Montage:
DOCKER_BUILDKIT=1 docker build --progress=plain --mount=type=ssh .
Debuggen von SSH Verbindung
Um SSH-Verbindungsprobleme zu beheben, führen Sie den folgenden Befehl vor dem Go-Build-Schritt aus:
RUN ssh -A -v -l git gitlab.com
AppArmor-Fehlerbehebung
Wenn Wenn Sie aufgrund von AppArmor auf Zugriffsverweigerungsfehler stoßen, ändern Sie das Docker-Apparmor-Profil /var/lib/snapd/apparmor/profiles/snap.docker.docker und fügen Sie diese Zeile hinzu:
/run/user/<uid>/keyring/ssh rw,
wobei
Schlüsseldateiname
Stellen Sie sicher, dass der für die Authentifizierung verwendete SSH-Schlüssel einen Standardnamen hat, z. B. id_rsa oder Konfigurieren Sie den Host-Eintrag in der .ssh/config-Datei von Docker, um den benutzerdefinierten Schlüsselnamen anzugeben.
Wenn Sie diese Anweisungen befolgen, sollten Sie in der Lage sein, zu erstellen Go-Apps, die private Module von GitLab in einem Docker-Container nutzen.
Das obige ist der detaillierte Inhalt vonWie dockerisiere ich Go-Apps mithilfe privater GitLab-Module mit SSH-Authentifizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!