Heim >Backend-Entwicklung >Golang >Wie dockerisiere ich Go-Apps mithilfe privater GitLab-Module mit SSH-Authentifizierung?

Wie dockerisiere ich Go-Apps mithilfe privater GitLab-Module mit SSH-Authentifizierung?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-26 15:33:10601Durchsuche

How to Dockerize Go Apps Using Private GitLab Modules with SSH Authentication?

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 ist die Benutzer-ID, die den Docker-Build-Befehl ausführt.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn