설명
Dockerfile에서 apt-get install을 실행할 때 자동 확인이 설정되어 있지 않으면 설치 중 사용자 입력을 요구할 수 있습니다. CI/CD 같은 자동 빌드 환경에서는 입력을 제공하지 못해 빌드가 멈추거나 실패할 수 있습니다.
-y, --yes, --assume-yes는 apt-get의 확인에 자동으로 응답합니다. 패키지 설정 스크립트의 모든 질문을 처리하거나 설치 성공을 보장하는 옵션은 아닙니다.
잠재적 영향
- 자동 빌드가 확인 입력에서 멈추거나 실패할 수 있습니다.
- 긴급 배포나 복구를 위한 이미지 재빌드가 늦어질 수 있습니다.
해결 방법
- apt-get install에 -y, --yes 또는 --assume-yes를 사용하고 자동 빌드에서 끝까지 실행되는지 확인하세요.
- 추가 설정 질문이 있는 패키지는 필요한 값을 미리 지정하고 해당 설치 명령에만 비대화형 설정을 적용하세요. 패키지 서명 검증을 끄는 방식으로 확인 오류를 우회하지 마세요.
예시
두 예제는 설치 확인 옵션만 비교합니다. 인덱스 갱신과 설치는 같은 RUN에 있으며, 캐시 정리와 패키지 버전 관리 등은 별도 검토 대상입니다.
변경 전
dockerfile
FROM ubuntu:24.04
RUN apt-get update && apt-get install curl
변경 후
dockerfile
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y curl
설명:
- 변경 전: apt-get의 설치 확인이 필요해질 수 있습니다.
- 변경 후: -y로 apt-get 확인에 응답합니다. 추가 패키지 설정 질문이나 의존성 오류는 별도로 처리해야 합니다.