The ADD
command is used to copy files/directories into a Docker image. It can copy data in three ways:
Copy files from the local storage to a destination in the Docker image.
Copy a tarball from the local storage and extract it automatically inside a destination in the Docker image.
Copy files from a URL to a destination inside the Docker image.
The ADD
command requires a source
and a destination
.
ADD source destination
If source
is a file, it is simply copied to the destination
directory.
If source
is a directory, its contents are copied to the destination
, but the directory itself is not copied.
source
can be either a tarball or a URL (as well).
source
needs to be within the directory where the docker build
command was run.
Multiple sources can be used in one ADD
command.
Let’s suppose that, in the Dockerfile directory, we have a folder called codes
which contains multiple C++ files.
Here’s how we can add all the files of the folder to a test
directory in our Docker image:
FROM ubuntu:latestRUN mkdir rootRUN cd rootWORKDIR /rootRUN mkdir testADD codes /root/test
To add specific files from the codes
folder, we can specify their names in the ADD
command:
ADD codes/file1.cpp codes/file2.cpp root/test/
When adding multiple source files or directories, there must be a
/
at the end of the destination directory.
The same syntax is followed for tarballs and URLs.