Last Update: @4/17/2024
Dockerfile의 COPY 명령어와 슬래시(/)
Dockerfile의 COPY 명령어를 통해 컨테이너 내부에 파일과 디렉터리를 복사할 수 있다.
COPY [--chown=<user>:<group>] <src>... <dest>
Docker
복사
이때 src와 dest 마지막에 붙는 슬래시(/)가 헷갈릴 수 있는데, 이를 알아보자.
예제가 아래와 같을 때,
COPY src dest
COPY src/ dest
COPY src dest/
COPY src/ dest/
Docker
복사
•
src가 디렉터리인 경우 - src 및 dest가 /로 끝나는 지 여부가 결과에 영향을 미치지 않음
◦
이미지에 dest가 존재하지 않는 경우
dest라는 이름의 새로운 디렉터리를 만들고 그 안에 src 내의 컨텐츠를 복사
◦
이미지에 dest가 이미 존재하는 경우
dest 디렉터리의 기존 내용물을 그대로 두고, 그 안에 src 내의 컨텐츠를 추가로 복사
위의 두 경우 모두 src 디렉터리 자체가 복사되지는 않음
•
src가 파일인 경우 - src가 /로 끝나는지 여부가 결과에 영향을 미치지 않음
◦
dest가 /로 끝나는 경우 - dest를 디렉터리로 취급
▪
이미지에 dest가 존재하지 않는 경우
dest라는 이름의 새로운 디렉터리를 만들고 그 안에 src 파일을 복사
▪
이미지에 dest가 이미 존재하는 경우
dest 디렉터리의 기존 내용물을 그대로 두고, 그 안에 src 파일을 추가로 복사
◦
dest가 /로 끝나지 않는 경우 - dest를 파일로 취급
dest라는 이름의 파일로 복사(덮어쓰기)
예제가 아래와 같다면,
COPY src1 src2 dest/
Docker
복사
•
dest 뒤에는 반드시 /로 끝나야 한다.