Посты по тегу: tricks

Docker tips: COPY и ADD

Иногда, просматривая разные Dockerfile, вы можете видеть инструкции COPY или ADD. Они очень похожи, но в 99% случаев вы должны использовать COPY вместо ADD. И вот почему.

COPY и ADD - это инструкции Dockerfile, которые выполняют похожие действия. Они предоставляют возможность скопировать файлы из указанного места внутрь Docker образа.

COPY позволяет только одно - скопировать файлы или каталоги с машины, где собирается образ, в сам образ. И больше ничего.

ADD позволяет сделать все тоже самое, только эта инструкция поддерживает еще 2 исходных места. Во-первых, вы можете использовать URL в качестве источника. Во-вторых, вы можете распаковать tar файл из источника в образ.

В большинстве случаев, если вы используете URL для загрузки zip файла, то после этого вам необходимо выполнить RUN для его распаковки. Если это так, то лучше использовать RUN для запуска curl и распаковки файла, чем использовать ADD и потом RUN. Это уменьшит размер Docker образа.

ADD же лучше использовать когда у вас есть локальный tar файл и его необходимо распаковать внутрь образа:

ADD file.tar.gz /opt

Если же вы просто копируете файлы, то всегда используйте COPY.