Qual é a diferença entre as instruções ADD e COPY no Dockerfile?

5

Não está claro para mim, por que há duas instruções para copiar arquivos na imagem do Docker descrita na referência Dockerfile. Existem ADICIONAR e COPY e eles parecem muito semelhantes a mim. Existe uma diferença prática entre eles? Se não, qual é o mais usado?

    
por Willian Paixao 02.03.2017 / 16:11

2 respostas

5

De acordo com Práticas recomendadas para escrever Dockerfiles ,

Although ADD and COPY are functionally similar, generally speaking, COPY is preferred. That’s because it’s more transparent than ADD.

ADD pode extrair arquivos tar e buscar arquivos URL remotos, embora não esteja muito claro na documentação oficial . Também é importante afirmar que,

Because image size matters, using ADD to fetch packages from remote URLs is strongly discouraged; you should use curl or wget instead.

COPY entrypoint.sh /srv/app/
ADD app.tar /srv/app/

Portanto, a regra geral é como @derobert mencionado, use COPY a menos que você precise de ADD de recursos exclusivos.

    
por 06.03.2017 / 13:22
6

ADD realiza muito mais "mágica": obtém URLs e descompacta arquivos. Isso pode ser um pouco inesperado (especialmente o arquivo descompactado). O guia oficial de práticas recomendadas recomenda que você use o COPY, a menos que precise dos recursos extras do ADD .

    
por 02.03.2017 / 16:31

Tags