Minha pergunta está relacionada a esta questão sobre como copiar arquivos de contêineres para hosts; Eu tenho um Dockerfile que busca dependências, compila um artefato de compilação da fonte e executa um executável. Também quero copiar o artefato de construção (no meu caso, é .zip
produzido por sbt dist
em '../ target / `, mas acho que esta questão também se aplica a jars, binários, etc.
docker cp
funciona em contêineres, não em imagens; eu preciso iniciar um contêiner apenas para obter um arquivo dele? Em um script, tentei executar /bin/bash
no modo interativo em segundo plano, copiando o arquivo e, em seguida, encerrando o contêiner, mas isso parece confuso. Existe uma maneira melhor?
Por outro lado, gostaria de evitar descompactar um .tar
arquivo depois de executar docker save $IMAGENAME
apenas para retirar um arquivo (mas essa parece ser a opção mais simples, embora a mais lenta agora).
Eu usaria volumes do docker, por exemplo:
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
mas estou executando boot2docker
em OSX e não sei como escrever diretamente no meu sistema de arquivos host mac (volumes de leitura e gravação estão montados dentro da minha VM boot2docker, o que significa que não posso compartilhar facilmente um script para extrair blah.zip
de uma imagem com outros. Pensamentos?
create
comando adicionado / removido (não está presente no 1.01)