Estou criando uma imagem do docker usando um Dockerfile bastante simples. Dentro do Dockerfile eu tenho este comando:
RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts
O comando em si parece estar OK, já que a criação da imagem não para neste ponto.
O problema é o seguinte: ao executar a imagem, a linha que deveria ter sido inserida dentro de "/etc/hosts" não está lá.
Agora, pesquisei e descobri que antes da versão 1.2 do docker, havia um problema com o arquivo hosts dentro dos contêineres. No meu caso, estou usando a versão 1.5, a mais recente até o momento.
Estou esquecendo de algo?
ATUALIZAÇÃO 1:
Parece haver muitos problemas para isso, abertos e fechados, nas páginas github do docker.
Isso funciona no docker 1.7.0
O truque é adicionar o nome do host na mesma linha em que você o usa, caso contrário, o arquivo hosts será redefinido, pois cada comando RUN inicia um novo contêiner intermediário. Por exemplo, isso não funcionará :
Depois de escrever a atualização da minha pergunta, decidi dar mais uma olhada nos "problemas" abertos no github. Acontece que uma solução alternativa foi implementada:
Usando o argumento "--add-host..." ao iniciar um contêiner, é possível modificar o arquivo hosts.