Maison >développement back-end >Golang >Comment Dockeriser des applications Go à l'aide de modules GitLab privés avec authentification SSH ?

Comment Dockeriser des applications Go à l'aide de modules GitLab privés avec authentification SSH ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-26 15:33:10601parcourir

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

Dockerize Go Apps avec des modules GitLab privés

Lors de la construction de vos applications Go dans un conteneur Docker avec des modules GitLab privés, il est crucial de configurer Authentification SSH efficace. Voici une approche améliorée qui résout les problèmes liés à la question référencée :

Dockerfile mis à jour

Pour extraire un package privé de GitLab, modifiez les lignes suivantes dans votre Dockerfile :

# Allow private repo pull
RUN git config --global url."https://my-personal-access-token:[email protected]/".insteadOf "https://gitlab.com/"

Configuration SSH

Mettre à jour le commandes suivantes pour ajouter votre clé SSH et configurer Git pour utiliser SSH :

RUN mkdir ~/.ssh
RUN touch ~/.ssh/known_hosts
RUN ssh-keyscan -t rsa gitlab.com >> ~/.ssh/known_hosts

Build Command

Utilisez la syntaxe expérimentale de Docker et spécifiez --mount=type= Option ssh pour activer le montage SSH :

DOCKER_BUILDKIT=1 docker build --progress=plain --mount=type=ssh .

Débogage SSH Connexion

Pour déboguer les problèmes de connectivité SSH, exécutez la commande suivante avant l'étape de construction :

RUN ssh -A -v -l git gitlab.com

Dépannage d'AppArmor

Si vous rencontrez des erreurs d'accès refusé en raison d'AppArmor, modifiez le profil Docker Apparmor /var/lib/snapd/apparmor/profiles/snap.docker.docker et ajoutez cette ligne :

/run/user/<uid>/keyring/ssh rw,

where est l'ID utilisateur qui exécutera la commande docker build.

Nom de fichier clé

Assurez-vous que la clé SSH utilisée pour l'authentification a un nom par défaut, tel que id_rsa, ou configurez l'entrée Host dans le fichier .ssh/config de Docker pour spécifier le nom de clé personnalisé.

En suivant ces instructions, vous devriez pouvoir créez des applications Go qui utilisent des modules privés de GitLab dans un conteneur Docker.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn