Dockerfile에서 ADD와 COPY 명령이 혼동되십니까?

Dockerfile을 만들어야 하는 경우 컨테이너 파일 시스템에 파일을 복사하는 데 사용할 수 있는 두 가지 지침이 있습니다. 명령은 ADD 및 COPY이며 둘 다 매우 유사하게 작동하지만 사용하기 전에 고려해야 할 몇 가지 세부 사항이 있습니다.

복사
  • 복사 명령은 로컬 소스 파일을 컨테이너의 파일 시스템으로 복사하는 것만 허용합니다.

  • COPY foo.properties /var/tmp/
    


    추가하다
  • 로컬 파일 및 디렉토리를 컨테이너의 파일 시스템에 복사합니다.

  •   ADD foo.properties /var/tmp/
    


  • 원격 URL에서 파일을 복사할 수도 있습니다.

  •   ADD http://someserver.com/file/foo.properties /var/tmp
    


  • 추가 명령은 압축 파일을 복사한 후 압축을 풉니다.

  • ADD test.tar /var/tmp/
    


    위 명령의 결과는 test.tar가 먼저 복사된 다음 해당 위치에서 추출된다는 것입니다.

    /var/tmp/
    


    원격 URL에서 복사할 때 ADD가 압축을 풀지 않도록 주의하십시오. 다운로드 및 복사만 됩니다. 압축 해제는 로컬 파일에 대해서만 작동합니다.

    추천
    로컬 빌드 컨텍스트에서 컨테이너로 복사해야 하는 경우 COPY를 계속 사용하세요.

    또한 ADD가 아닌 URL에서 다운로드하여 복사해야 하는 경우 RUN 명령 내에서 wget 또는 curl를 사용하는 것이 더 안전하고 효율적입니다. 이렇게 하면 추가 이미지 레이어를 만들지 않아도 됩니다.

    ADD config.tar.gz /
    



    COPY config.tar.gz /
    RUN tar -zxvf config.tar.gz
    RUN rm -rf config.tar.gz
    


    참조:
  • https://stackoverflow.com/questions/24958140/what-is-the-difference-between-the-copy-and-add-commands-in-a-dockerfile/31923335#31923335
  • https://developersdoors.xyz/the-difference-between-add-and-copy-in-dockerfile/
  • 좋은 웹페이지 즐겨찾기