Copy a file from container to host during build process

7.6k views Asked by At

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.

2

There are 2 answers

0
seanmcl On

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.

0
Javier Castellanos On

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