Mi pregunta está relacionada con esta pregunta sobre cómo copiar archivos de contenedores a hosts; Tengo un Dockerfile que busca dependencias, compila un artefacto de compilación desde la fuente y ejecuta un ejecutable. También quiero copiar el artefacto de compilación (en mi caso, es .zip
producido por sbt dist
en '../ target / `, pero creo que esta pregunta también se aplica a jar, binarios, etc.
docker cp
trabaja en contenedores, no en imágenes; ¿Necesito iniciar un contenedor solo para sacar un archivo? En un script, intenté ejecutarlo /bin/bash
en modo interactivo en segundo plano, copiando el archivo y luego matando el contenedor, pero esto parece tonto. ¿Existe una forma mejor?
Por otro lado, me gustaría evitar desempaquetar un .tar
archivo después de ejecutarlo docker save $IMAGENAME
solo para sacar un archivo (pero esa parece la opción más simple, aunque más lenta, en este momento).
Usaría volúmenes de docker, por ejemplo:
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
pero estoy corriendo boot2docker
en OSX y no sé cómo escribir directamente en mi sistema de archivos de host mac (los volúmenes de lectura y escritura se montan dentro de mi máquina virtual boot2docker, lo que significa que no puedo compartir fácilmente un script para extraer blah.zip
de una imagen con otros ¿Pensamientos?
create
comando agregado / eliminado (no está presente en 1.01)