Search
🐳

[Docker] COPY 명령어 슬래시 의미 정리 (trailing slash /)

Last Update: @4/17/2024

Dockerfile의 COPY 명령어와 슬래시(/)

Dockerfile의 COPY 명령어를 통해 컨테이너 내부에 파일과 디렉터리를 복사할 수 있다.
COPY [--chown=<user>:<group>] <src>... <dest>
Docker
복사
이때 srcdest 마지막에 붙는 슬래시(/)가 헷갈릴 수 있는데, 이를 알아보자.
예제가 아래와 같을 때,
COPY src dest COPY src/ dest COPY src dest/ COPY src/ dest/
Docker
복사
src디렉터리인 경우 - srcdest/로 끝나는 지 여부가 결과에 영향을 미치지 않음
이미지에 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 뒤에는 반드시 /로 끝나야 한다.

References

관련 문서