Dockerfile에서 COPY를 사용할 때,
목적지 경로 끝에 /를 붙이는 이유는 디렉토리로 명확히 지정하기 위함입니다.
예를 들어:
COPY . /app/
여기서 /app/은 “디렉토리”임을 명확히 표현합니다.
1. /가 없는 경우
COPY . /app
이 경우:
- /app이 없으면 → 디렉토리로 생성됨
- 이미 /app이 파일이면 → 파일로 덮어쓰기 가능
즉, 상황에 따라 동작이 달라질 수 있습니다.
2. /를 붙이면 무엇이 달라질까?
COPY . /app/
의미:
“/app 디렉토리 안에 복사하라”
명확하게 디렉토리로 해석됩니다.
이 방식이 더 안전합니다.
3. 왜 중요할까?
특히 이런 경우에서 차이가 발생합니다.
COPY src /app
- /app이 없다 → /app이라는 디렉토리 생성 후 src 내용 복사
- /app이 이미 파일이면 → 예상치 못한 동작 가능
반면:
COPY src/ /app/
src의 내부 내용만 /app/ 안으로 복사
4. 디렉토리 복사 시 권장 방식
- 목적지는 /로 끝내기
- 소스도 디렉토리면 / 명시
COPY src/ /app/
의도 명확 + 예측 가능한 동작
COPY에서 목적지 경로 끝에 /를 붙이면 디렉토리임을 명확히 하여 예측 가능한 복사가 가능합니다.
'컨테이너·워크플로우 자동화 > DocKer 기본 및 활용' 카테고리의 다른 글
| Docker Compose depends_on의 동작 원리와 한계 (0) | 2026.02.18 |
|---|---|
| Docker Compose 구성 이해하기 (0) | 2026.02.18 |
| Docker 컨테이너가 즉시 종료되는 이유와 디버깅을 위한 ENTRYPOINT 활용 방법 (0) | 2026.02.17 |
| Docker RUN 명령어와 && 사용 이유: 레이어 구조 관점에서 이해하기 (0) | 2026.02.17 |
| Docker 빌드 최적화를 위한 .dockerignore 활용 전략 (0) | 2026.02.17 |