[Dockerfile] ADD와 COPY
ADD - 파일을 이미지에 추가
- 파일을 이미지에 추가합니다.
- 명령어는
ADD <Host OS의 파일 경로> <이미지 내에서 파일이 위치할 경로>
ADD 파일명 이미지 내부의 경로만 적을 시, 이미지 내부의 파일명은 Host OS의 파일명을 따라갑니다. ex)ADD file.sh /home
==>/home/file.sh
생성- 🌟 Host OS의 파일경로는 현재 컨텍스트 상위 파일, 디렉터리나 절대경로는 사용 불가
- 🌟
<이미지 내부의 경로>
는 반드시 절대경로로 작성합니다.
- 와일드 카드(*)를 이용하여 특정 파일만 복사도 가능합니다 ex)ADD *.sh /home/
- Local에 있는 압축파일(tar.gz, tar.bz2, tar.xz)은 압축을 해제하고 tar를 풀어서 추가됩니다. ex)
ADD compress.tar.gz /
==> 이미지의/
directory에 압축 해제된 파일들이 추가 됨 - 인터넷에 있는 파일 URL은 압축만 해제한 뒤 tar파일만 추가됩니다 ex)
ADD http://file.co.kr/file/1234.tar.gz /
==> 이미지의/
directory에1234.tar.gz
파일 생성 - Directory 전체를 추가 시,
.dockerignore
파일에 설정한 파일과 디렉터리는 제외됩니다. - ADD로 추가되는 파일은 root root 기존 권한을 따릅니다 (단, URL로 추가된 파일의 경우 600)
COPY - 파일을 이미지에 복사
- 파일을 이미지에 추가합니다.
- ADD와는 달리 COPY는 압축 파일을 추가할 때 압축을 해제하지 않고, 파일 URL도 사용할 수 없습니다.
- 명령어는
COPY <Host OS의 파일 경로> <이미지 내에서 파일이 위치할 경로>
- COPY 파일명 이미지 내부의 경로만 적을 시, 이미지 내부의 파일명은 Host OS의 파일명을 따라갑니다. ex)
ADD file.sh /home
==>/home/file.sh
생성 - 🌟 Host OS의 파일경로는 현재 컨텍스트 상위 파일, 디렉터리나 절대경로는 사용 불가
- 🌟
<이미지 내부의 경로>
는 반드시 절대경로로 작성합니다.
- COPY 파일명 이미지 내부의 경로만 적을 시, 이미지 내부의 파일명은 Host OS의 파일명을 따라갑니다. ex)
- 와일드 카드(*)를 이용하여 특정 파일만 복사도 가능합니다 ex)
COPY *.sh /home/
- Local에 있는 압축파일(
tar.gz
,tar.bz2
,tar.xz
)은 압축을 해제하지 않고 그대로 복사 됩니다. - 인터넷에 있는 파일 URL은 사용 불가.
- Directory 전체를 추가 시,
.dockerignore
파일에 설정한 파일과 디렉터리는 제외됩니다. - COPY로 추가되는 파일은 root root 기존 권한을 따릅니다
💛 개인 공부 기록용 블로그입니다. 👻