설명
zypper install은 사용자 확인이 필요한 경우 입력을 기다릴 수 있습니다. Docker 빌드는 자동으로 실행되므로, 이런 입력 대기 상태가 발생하면 빌드가 멈추거나 실패할 수 있습니다.
컨테이너 이미지는 사람이 직접 개입하지 않아도 안정적으로 빌드돼야 합니다. 따라서 zypper를 사용할 때는 비대화형 옵션으로 확인 입력을 처리해야 합니다. 이 옵션이 패키지나 저장소 오류까지 해결하거나 설치 성공을 보장하지는 않습니다.
잠재적 영향
- 이미지 빌드가 중간에 멈추거나 실패할 수 있습니다.
- CI/CD 파이프라인에서 배포가 지연될 수 있습니다.
- 환경에 따라 빌드 성공 여부가 달라져 재현성이 떨어질 수 있습니다.
해결 방법
zypper install -y ...처럼 비대화형 옵션을 함께 사용하세요.- 패키지 설치 후에는 정리 명령까지 포함해 빌드 단계를 명확히 유지하세요.
- 자동 빌드 환경에서 사용자 입력이 필요한 명령이 없는지 점검하세요.
예시
zypper와 저장소가 구성된 SUSE 계열 이미지의 root 빌드 단계 발췌입니다. curl 패키지의 제공 여부와 설치 결과를 확인하세요.
변경 전
dockerfile
RUN zypper install curl && zypper clean
변경 후
dockerfile
RUN zypper install -y curl && zypper clean
설명:
- 변경 전: 설치 중 확인 입력이 필요하면 빌드가 멈출 수 있습니다.
- 변경 후:
-y로 비대화형 설치를 요청합니다. 실패 종료 코드와 라이선스 등 추가 요구사항을 확인해야 합니다.