Ответ
Инструкция ADD в Dockerfile копирует файлы, директории или удаленные ресурсы из контекста сборки или из сети внутрь образа. Её ключевые особенности:
- Распаковка архивов: Автоматически распаковывает локальные
.tar,.tar.gz,.tar.bz2,.tar.xzи.zipархивы при копировании. - Загрузка по URL: Может скачивать файлы из сети напрямую в образ.
Пример использования:
# Копирует и распаковывает архив в целевую директорию
ADD application.tar.gz /usr/src/app/
# Скачивает файл по URL в временную директорию
ADD https://example.com/config.yaml /tmp/config.yaml
Основное отличие от COPY: COPY — это более простая и предсказуемая инструкция, которая только копирует локальные файлы и директории. ADD обладает расширенной функциональностью, но её поведение с архивами может быть неочевидным.
Лучшие практики: Используйте COPY для обычного копирования файлов. Применяйте ADD только в специфичных случаях, когда нужна распаковка архивов или загрузка из сети.