Копирование локальной конфигурации git в контейнер Docker - PullRequest
0 голосов
/ 15 октября 2018

Я использую и docker, и docker-compose для размещения, что по большей части является стеком LAMP.Я хотел бы иметь возможность использовать git внутри одного из моих контейнеров, не запрашивая мои user.email и user.name при загрузке после сборки.Наряду с другими вещами, такими как мой push.default и настройки ветки.Есть ли хороший способ заставить docker или docker-compose скопировать результаты git config --list в файл в контейнере, который затем я могу использовать с моей точкой входа для настройки git config.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Есть ли хороший способ заставить docker или docker-compose скопировать результаты git config --list в файл в контейнере, который затем я могу использовать с моей точкой входа для настройки git config.

Вам действительно не нужно делать это для достижения своих целей, есть выходное решение:

Для вашего хоста, на котором запущен git, все содержимое git config --list хранится в файлах:

  • Если для их настройки использовать git config --system, они сохраняются в /etc/gitconfig
  • Если для их настройки используется git config --global, они сохраняются в ~/.gitconfig

Итак, вам просто нужно смонтировать файлы в контейнеры, а затем повторно использовать git configure на хост-компьютере.

Примерно так, FYI.

  • Если хост использует --global для настройки git:

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

    вывод: user.name=xxx

  • Если хост использует --system для настройки git:

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

    вывод: user.name=yyy

Для docker-compose вы можете просто настроить volumes для определения монтирования.

0 голосов
/ 15 октября 2018

Я предполагаю, что вы хотите использовать git внутри контейнера, но в то же время вы не хотите вводить имя пользователя и пароль снова и снова?

Метод, который я могу использоватьдля начала просто добавьте команду git config в Dockerfile.

Причина в том, что вы все равно будете вводить пароль в виде простого текста.

Итак, мое предложениедобавляет эти строки в Dockerfile.

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