Experimente o dockerfeed . Ele usa o recurso docker para construir um contexto via stdin. Eu escrevi o script para resolver exatamente o seu problema que eu mesmo estava enfrentando.
Para substituir um Dockerfile por um diferente, faça assim:
dockerfeed -d Dockerfile.app . | docker build -t deepak/ruby -
E voilà. Dockerfeed está fazendo o mesmo que docker build
. Ele empacota o código-fonte com seu Dockerfile, mas permite que você troque o Dockerfile antigo pelo desejado. Nenhum arquivo é criado no processo, nenhuma fonte é alterada. O arquivo tar gerado é canalizado para o docker, que por sua vez o envia para o daemon do docker.
Atualização:
Esta era uma resposta válida nos velhos tempos, quando não havia -f
opção disponível. Com o docker versão 1.5, essa opção foi introduzida. Agora você pode fornecer um Dockerfile diferente como este:
docker build -f other-Dockerfile .