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.
ADD command requires a
source and a
ADD source destination
source is a file, it is simply copied to the
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
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:latest RUN mkdir root RUN cd root WORKDIR /root RUN mkdir test ADD codes to /root/test
To add specific files from the
codes folder, we can specify their names in the
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.