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의 심볼릭 링크 처리 차이를 반드시 확인하고, 실제 파일 구조가 의도치 않게 변경되지 않도록 명령을 환경에 맞게 수정해야 합니다.
함께 읽을 글
내용이 비슷해요내용이 비슷한 글을 먼저 보여드려요. 같은 문제나 해결책을 다룬다는 뜻은 아니에요.