web-dev-qa-db-fra.com

Copie de la configuration locale de git dans le conteneur Docker

J'utilise à la fois docker et docker-compose pour héberger ce qui est pour la plupart une pile LAMP. Je voudrais pouvoir utiliser git dans l'un de mes conteneurs sans qu'il me demande mon user.email et user.name sur Push après avoir construit. Avec d'autres choses telles que mes paramètres Push.default et de branche. Existe-t-il un bon moyen pour que docker ou docker-compose copie les résultats de git config --list dans un fichier dans le conteneur, que je peux ensuite utiliser avec mon point d'entrée pour configurer la configuration git.

6
Shardj

Existe-t-il un bon moyen pour que docker ou docker-compose copie les résultats de git config --list dans un fichier dans le conteneur, que je peux ensuite utiliser avec mon point d'entrée pour configurer la configuration git.

Vous n'avez vraiment pas besoin de faire cela pour atteindre vos objectifs, il existe une solution d'envoi:

Pour votre machine hôte exécutant git, tout le contenu de git config --list est stocké dans des fichiers:

  • Si vous utilisez git config --system pour les configurer, ils sont stockés dans /etc/gitconfig
  • Si vous utilisez git config --global pour les configurer, ils sont stockés dans ~/.gitconfig

Il vous suffit donc de monter les fichiers dans des conteneurs, puis de réutiliser git configure sur la machine hôte.

Quelque chose comme suit, FYI.

  • Si l'hôte utilise --global pour configurer git:

    docker run --rm -it -v ~/.gitconfig:/etc/gitconfig your_image_with_git git config --list
    

    production: user.name=xxx

  • Si l'hôte utilise --system pour configurer git:

    docker run --rm -it -v /etc/gitconfig:/etc/gitconfig your_image_with_git git config --list
    

    production: user.name=yyy

Pour docker-compose, vous pouvez simplement configurer volumes pour définir le montage.

2
lagom

Je suppose que vous voulez pouvoir utiliser git dans un conteneur mais en même temps, vous ne voulez pas taper votre nom d'utilisateur et votre mot de passe encore et encore?

La méthode que je peux trouver est simple, ajoutez le git config commande dans le Dockerfile.

La raison en est que vous fournirez le mot de passe en texte clair de toute façon dans un sens ou dans l'autre.

Donc, ma suggestion est d'ajouter ces lignes au Dockerfile.

RUN git config --global user.name "your username"
RUN git config --global user.password "your password"
0
scipsycho