핵심 요약
인프랩은 Alpine 기반 Docker 이미지와 Debian/Ubuntu 기반 이미지 간 cp 동작 차이를 분석하고, Alpine에서 동일한 결과를 얻으려면 cp 실행 전에 심볼릭 링크를 제거해야 한다고 제시합니다.
구현 방법
- Alpine: echo 1 > a; echo 2 > b; ln -s a c; cp b c 실행 시 symlink가 제거되고 c가 독립 파일로 복사되어 a=1, b=2, c=2로 변화합니다.
- Debian/Ubuntu: 같은 순서로 실행하면 symlink가 남아 a의 내용이 변경되며 a=2, b=2, c=2로 변합니다.
- 교차 마이그레이션 시 Alpine과 동일한 결과를 원하면 cp 전에 rm c로 심볼릭 링크를 삭제해야 합니다.
주요 결과
- Alpine에서 cp 실행 시 심볼릭 링크가 제거되어 c가 독립 파일로 복사됩니다.
- Debian/Ubuntu는 symlink를 유지하고, a의 내용이 2로 변경됩니다.
- 이종 이미지 간 마이그레이션 시 cp 처리 로직을 상황에 맞게 조정해야 한다는 점이 시사됩니다.



