← 테크곳간 목록으로

tech.inflab.com · 2022. 05. 25.

Alpine/Debian 기반 Docker 이미지 간 cp 명령 동작 차이

AI 엔지니어링 브리핑

Alpine과 Debian·Ubuntu 기반 Docker 이미지에서는 심볼릭 링크를 대상으로 한 cp 명령의 처리 방식이 달라 파일이 예상과 다르게 바뀔 수 있습니다.

문제 & 배경

Alpine에서는 cp b c를 실행하면 심볼릭 링크 c가 삭제되고 b의 내용이 새 파일 c에 복사되지만, Debian·Ubuntu에서는 링크가 유지된 채 링크가 가리키는 원본 파일의 내용이 바뀌는 문제가 발생합니다.

기술 & 해결책

두 환경의 차이를 고려해 Debian·Ubuntu에서 Alpine과 같은 결과가 필요하면 cp 전에 rm c로 기존 심볼릭 링크를 명시적으로 삭제해야 합니다.

교훈 & 주의점

Alpine과 Debian·Ubuntu 사이에서 이미지를 이전하거나 명령을 공유할 때는 cp의 심볼릭 링크 처리 차이를 반드시 확인하고, 실제 파일 구조가 의도치 않게 변경되지 않도록 명령을 환경에 맞게 수정해야 합니다.

원문 읽기 ↗
내용이 비슷해요

내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.