Ma question est liée à cette question sur la copie de fichiers depuis des conteneurs vers des hôtes; J'ai un Dockerfile qui récupère les dépendances, compile un artefact de construction à partir de la source et exécute un exécutable. Je veux aussi copier l'artefact de construction (dans mon cas, c'est un .zip
produit par sbt dist
dans '../ target / `, mais je pense que cette question s'applique également aux jars, binaires, etc.
docker cp
fonctionne sur des conteneurs, pas sur des images; dois-je démarrer un conteneur juste pour en extraire un fichier? Dans un script, j'ai essayé de courir /bin/bash
en mode interactif en arrière-plan, de copier le fichier, puis de tuer le conteneur, mais cela semble kludgey. Y a-t-il un meilleur moyen?
D'un autre côté, je voudrais éviter de décompresser un .tar
fichier après l'exécution docker save $IMAGENAME
juste pour en extraire un (mais cela semble être l'option la plus simple, bien que la plus lente, pour le moment).
J'utiliserais des volumes de docker, par exemple:
docker run -v hostdir:out $IMAGENAME /bin/cp/../blah.zip /out
mais j'exécute sous boot2docker
OSX et je ne sais pas comment écrire directement sur mon système de fichiers hôte mac (les volumes en lecture-écriture sont montés dans ma VM boot2docker, ce qui signifie que je ne peux pas facilement partager un script pour extraire blah.zip
d'une image avec d'autres.
create
commande a-t-elle été ajoutée / supprimée (elle n'est pas présente dans la version 1.01)