La mia domanda è relativa a questa domanda sulla copia dei file dai contenitori agli host; Ho un Dockerfile che recupera le dipendenze, compila un artefatto di build dall'origine ed esegue un eseguibile. Voglio anche copiare l'artefatto di build (nel mio caso è un .zip
prodotto da sbt dist
in '../ target / `, ma penso che questa domanda si applichi anche a jar, binari, ecc.
docker cp
lavora sui contenitori, non sulle immagini; devo avviare un contenitore solo per estrarne un file? In uno script, ho provato a eseguire /bin/bash
in modalità interattiva in background, copiando il file e quindi uccidendo il contenitore, ma questo sembra kludgey. C'è un modo migliore?
D'altra parte, vorrei evitare di decomprimere un .tar
file dopo l'esecuzione docker save $IMAGENAME
solo per estrarne uno (ma questa sembra l'opzione più semplice, anche se la più lenta al momento).
Userei volumi docker, ad esempio:
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
ma sto eseguendo boot2docker
in OSX e non so come scrivere direttamente sul mio file system host Mac (i volumi di lettura-scrittura si stanno montando all'interno della mia VM boot2docker, il che significa che non posso condividere facilmente uno script con cui estrarre blah.zip
da un'immagine altri Pensieri?
create
comando aggiunto / rimosso (non è presente nella 1.01)