Dockerisierte Go-Apps mit privaten GitLab-Modulen erstellen
In diesem Artikel wird der Prozess der Erstellung von Go-Anwendungen mit privaten GitLab-Modulen in Docker-Containern untersucht.
Schritt 1: Initialisieren Sie den Docker Bild
- Beginnen Sie mit einem Basis-Go-Image, z. B. golang:1.14.11-alpine, und legen Sie es als Build-Umgebung fest.
- Erstellen Sie ein Arbeitsverzeichnis für Build-Prozess.
- Kopieren Sie den Quellcode in das Arbeitsverzeichnis.
Schritt 2: Abhängigkeiten installieren und SSH konfigurieren
- Installieren Sie den SSH-Client und Git für die Verwaltung privater Repositorys.
- Erstellen Sie ein SSH-Verzeichnis und fügen Sie den GitLab-SSH-Schlüssel zur Datei „known_hosts“ hinzu.
- Konfigurieren Sie Git so, dass die HTTPS-URL-Ersetzung mit einem persönlichen Zugriff verwendet wird Token.
Schritt 3: Erstellen Sie die Anwendung
- Setzen Sie die Build-Flags, um die resultierende ausführbare Datei zu optimieren.
- Kopieren Sie die ausführbar von der Build-Umgebung zum Laufzeit-Image.
Schritt 4: Privat Modulzugriff
- Bereiten Sie das private Modul vor, indem Sie eine Trust on Server (ToS)-Beziehung mit dem GitLab-Repository einrichten.
- Stellen Sie ein persönliches Zugriffstoken mit schreibgeschütztem Zugriff bereit das Modul für den Docker-Build.
- Fügen Sie das Modul mit go get zum Go-Arbeitsbereich hinzu und führen Sie Folgendes aus build.
Fehlerbehebung: SSH-Verbindungsprobleme
- Stellen Sie sicher, dass der für die Authentifizierung verwendete SSH-Schlüssel den Namen id_rsa oder einen der anderen Standardschlüsselnamen trägt dass Docker erkennt.
- Wenn Sie einen benutzerdefinierten Schlüsselnamen verwenden, konfigurieren Sie die SSH-Konfiguration so, dass der benutzerdefinierte Schlüssel dem zugeordnet wird GitLab-Repository.
Zusätzliche Überlegungen
- Vermeiden Sie die Verwendung von .netrc-Dateien, da diese Anmeldeinformationen in das Docker-Image einbetten und möglicherweise die Sicherheit gefährden.
- Wenn Sie auf AppArmor-Probleme stoßen, gewähren Sie Docker Zugriff auf den SSH-Schlüssel-Socket, indem Sie den entsprechenden AppArmor ändern Profil.
Das obige ist der detaillierte Inhalt vonWie erstellt man Docker-basierte Go-Apps mithilfe privater GitLab-Module?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!