govin
govin

Reputation: 6693

Copy a file from container to host during build process

How do I copy files from a docker container to the host machine during docker build command?

As a part of building my docker image for my app, I'm running some tests inside it, and I would like to copy the output of the test run into the host (which is a continuous integration server) to do some reporting.

Upvotes: 10

Views: 7698

Answers (2)

Javier Castellanos
Javier Castellanos

Reputation: 9864

I wouldn't run the tests during build, this will only increase the size of your image. I would recommend you to build the image and then run it mounting a host volume into the container and changing the working directory to the mount point.

docker run -v `pwd`/results:/results -w /results -t IMAGE test_script

Upvotes: 4

seanmcl
seanmcl

Reputation: 9946

There is no easy way to do this. Volumes are only created at run time. You can grab it out of the docker filesystem, (e.g. mine is /var/lib/docker/devicemapper/mnt/CONTAINER_ID/rootfs/PATH_TO_FILE) though there is no good way to figure out when your test process is complete. You could create a file when it's finished and do an inotify, but this is ugly.

Upvotes: 1

Related Questions