Création d'applications Go Dockerisées avec des modules GitLab privés
Cet article explore le processus de création d'applications Go avec des modules GitLab privés dans des conteneurs Docker.
Étape 1 : Initialiser le Docker Image
- Commencez avec une image Go de base, telle que golang:1.14.11-alpine, et définissez-la comme environnement de construction.
- Créez un répertoire de travail pour le processus de construction.
- Copiez le code source dans le fichier de travail répertoire.
Étape 2 : installer les dépendances et configurer SSH
- Installer le client SSH et Git pour gérer les référentiels privés.
- Créez un répertoire SSH et ajoutez la clé GitLab SSH aux known_hosts fichier.
- Configurez Git pour utiliser la substitution d'URL HTTPS avec un jeton d'accès personnel.
Étape 3 : Créez l'application
- Définissez les indicateurs de build pour optimiser l'exécutable résultant.
- Copiez l'exécutable de l'environnement de build vers le image d'exécution.
Étape 4 : Accès au module privé
- Préparez le module privé en établissant une relation Trust on Server (ToS) avec le GitLab dépôt.
- Fournir un jeton d'accès personnel avec un accès en lecture seule au module pour le Docker build.
- Ajoutez le module à l'espace de travail Go en utilisant go get et effectuez la build.
Dépannage : problèmes de connexion SSH
- Assurez-vous que la clé SSH utilisée pour l'authentification s'appelle id_rsa ou l'un des autres noms de clé par défaut fournis par Docker. reconnaît.
- Si vous utilisez un nom de clé personnalisé, configurez la configuration SSH pour mapper la clé personnalisée au référentiel GitLab.
Considérations supplémentaires
- Évitez d'utiliser des fichiers .netrc, car ils intègrent des informations d'identification dans l'image Docker, ce qui pourrait compromettre sécurité.
- Si vous rencontrez des problèmes avec AppArmor, accordez à Docker l'accès au socket de clé SSH en modifiant le profil AppArmor approprié.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!