[Docker]: connect to git repos with ‘git:’ schema

whale
image by Adrian Ropp

Разворачивая приложение в docker контейнере можно наткнуться на то, что ресурсы располагающиеся по ssh протоколу (в том числе ‘git://‘) не будут доступны для обращения/вытягивания в самом контейнере…

Дальше всё очень весело.
Как оказалось – не так-то просто использовать в контейнере ‘системный‘ ssh-agent.

  • Копирование ключей..
  • Задание прав доступа к ним…
  • Проброс ssh сокета….
  • Пляски с ssh-add, для предоставления доступа к удалённому хосту…..
  • И да.. ещё на ключе может быть passphrase……

Вообщем и целом идея не здравая.
Было решено просто добавлять принудительное использование протокола ‘http‘ для ресурсов с ssh соединением, к которым обращается git.

2 ~ $ git config –global url.https:.insteadOf git:

В самом Dockerfile проще записывать это сразу в конфиг для git’а (к примеру с github):

1 # FROM some_image:some_tag
2 
3 RUN echo "[url \"https://github.com/\"]\n\tinsteadOf = git@github.com:" >> /root/.gitconfig
4 
5 # CMD ['some command']

Таким образом любые обращения по ‘git:‘ протоколу будут использовать http соединение.
Минус в том, что для приватных ресурсов – этот вариант не подходит.

К сожалению, особо приемлемых вариантов более нет.
Держитесь там….” (с)

Brace-Yourselves-X-is-Coming

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s