설명
apt는 사람이 터미널에서 직접 쓰기 편하도록 설계된 명령이며 버전 사이의 인터페이스 호환성을 보장하지 않습니다. Dockerfile 같은 자동화 환경에서는 더 안정적인 인터페이스를 제공하는 apt-get과 apt-cache를 사용하는 편이 좋습니다.
apt가 항상 실패한다는 뜻은 아닙니다. 명령을 바꾸는 것만으로 패키지 버전이나 빌드 결과가 고정되는 것도 아닙니다.
잠재적 영향
- APT 버전 변경에 따라 자동화 스크립트의 출력이나 동작이 달라질 수 있습니다.
- 예상하지 않은 차이로 이미지 빌드와 유지보수가 어려워질 수 있습니다.
해결 방법
- 설치에는 apt-get을, 패키지 정보 조회에는 apt-cache를 사용하세요. 필요한 하위 명령과 옵션은 각 도구의 문서에 맞게 바꾸세요.
- apt-get update와 설치를 같은 RUN에 두고 자동 확인 및 캐시 정리를 구성하세요. 실제 빌드와 버전 관리도 확인하세요.
예시
두 예제는 자동화용 인터페이스 사용을 비교합니다. 변경 후에는 인덱스 갱신도 포함하며, 캐시 정리와 버전 고정은 생략했습니다.
변경 전
dockerfile
FROM ubuntu:24.04
RUN apt install -y curl
변경 후
dockerfile
FROM ubuntu:24.04
RUN apt-get update \
&& apt-get install -y curl
설명:
- 변경 전: 대화형 사용을 중심으로 설계된 apt를 실행하고 인덱스 갱신도 생략합니다.
- 변경 후: apt-get으로 인덱스를 갱신하고 설치합니다. 패키지·네트워크 오류까지 예방하는 설정은 아닙니다.