terça-feira, 25 de agosto de 2015

Dica rápida: Acessar repositórios do git na rede local no Docker


Bem, antes de começar a postagem. Estou um tanto atrasado com postagens aqui, estou escrevendo uma postagem longa, mas vou demorar um pouco pra terminar. Então, vou jogar pequenas dicas aqui conforme os problemas que eu for encontrando no serviço. Assim resolvo meus problemas e o de mais alguém que estiver na mesma situação.

O problema

Ao tentar usar o git clone para baixar um repositório na rede interna dentro de um container docker recebi este belo erro:
ssh: Could not resolve hostname git.internal: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Qual a solução?


A solução é muito simples. O Docker usa por padrão os servidores de DNS 8.8.8.8 e 8.8.4.4 (DNS da Google). Em outras palavras, ele não vai ter acesso a rede interna, uma vez que os servidores de DNS não sabem - e nem deveriam saber - nada a respeito dos hosts internos.
O que fazer? No Ubuntu, é só editar o arquivo /etc/default/docker, descomentar a linha e acrescentar seu DNS a variável DOCKER_OPTS:

DOCKER_OPTS="--dns <SEU_DNS> --dns 8.8.8.8 --dns 8.8.4.4"

Reinicie o daemon do docker:
sudo service docker restart

Pronto. Pode usar o git dentro dos seus containers tranquilamente - se tiver apontado pro DNS correto.
Menos uma besteira pra dar um dia de dor de cabeça. ;)


Fontes:
RandomTech




Um comentário:

André disse...

Essa postagem longa que nunca veio...