zypper 패키지 버전 미고정

검증한 패키지 버전을 지정하고 보안 업데이트 계획을 함께 관리하세요.

설명

zypper install에서 패키지 이름만 지정하면 저장소 상태에 따라 다른 버전이 설치될 수 있습니다. 같은 Dockerfile이라도 빌드 시점에 따라 결과가 달라져 장애 재현이나 롤백이 어려워질 수 있습니다.

버전 고정은 변경을 통제하는 수단이며 해당 버전의 안전성을 보장하지 않습니다. 베이스 이미지와 의존성, 저장소 상태도 빌드 결과에 영향을 줍니다.

잠재적 영향

  • 예상하지 않은 의존성 변경으로 애플리케이션 동작이 달라질 수 있습니다.
  • 오래된 버전을 계속 고정하면 필요한 보안 수정이 반영되지 않을 수 있습니다.

해결 방법

  • 사용하는 저장소에서 제공하는 패키지 이름과 버전을 확인하고 package=version 형태로 검증한 버전을 지정하세요.
  • 보안 수정과 지원 기간을 검토해 고정 버전을 갱신하고, 재현성이 중요하면 의존성과 저장소 스냅샷도 관리하세요.

예시

기존 httpd=2.4.58은 구문을 비교하기 위한 예시입니다. 실제 openSUSE 환경에서 제공되는 Apache 패키지 이름과 버전·릴리스를 확인해 바꾸세요. 이 태그와 버전을 현재 배포용 권장값으로 사용하지 마세요.

변경 전

dockerfile
FROM opensuse/leap:15.6

RUN zypper install -y httpd \
    && zypper clean

변경 후

dockerfile
FROM opensuse/leap:15.6

RUN zypper install -y httpd=2.4.58 \
    && zypper clean

설명:

  • 변경 전: 버전을 지정하지 않아 저장소가 선택하는 버전이 달라질 수 있습니다.
  • 변경 후: 특정 버전을 요청합니다. 해당 패키지와 버전이 저장소에 있어야 하며 보안 업데이트는 별도 관리해야 합니다.

참조