Docker 이미지가 yum 패키지를 업그레이드하는 것을 방지하는 방법

Docker 이미지가 yum 패키지를 업그레이드하는 것을 방지하는 방법

centos 7.4.1708과 함께 제공되는 특정 버전의 openldap을 설치하고 싶습니다. 센토스 볼트

openldap-2.4.44-5.el7.i686
openldap-2.4.44-5.el7.x86_64 
openldap-clients-2.4.44-5.el7.x86_64    

아래는 내 Dockerfile입니다.

FROM centos:7.4.1708
#7.4.1708 installs openldap-2.4.44-5.el7
ENV container docker
MAINTAINER The CentOS Project <[email protected]>
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
ENV container docker
RUN yum -y install openldap openldap-clients
CMD ["/usr/sbin/init"]

그러나 도커 이미지를 빌드하면 openldap 패키지가 업그레이드됩니다.

Step 6/7 : RUN yum -y install openldap openldap-clients
 ---> Running in 4cccfbad0fb9

Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
 * base: repos-tx.psychz.net
 * extras: mirrors.oit.uci.edu
 * updates: linux.mirrors.es.net
Resolving Dependencies
--> Running transaction check
---> Package openldap.x86_64 0:2.4.44-5.el7 will be updated
---> Package openldap.x86_64 0:2.4.44-20.el7 will be an update
---> Package openldap-clients.x86_64 0:2.4.44-20.el7 will be installed
--> Finished Dependency Resolution

답변1

당신의 응답을 주셔서 감사합니다. 패키지를 제공하는 사용자 지정 centos yum 저장소를 만들고 Dockerfile에서 yum downgrade 명령을 실행하는 해결 방법을 사용해야 했습니다.

CentOS-Old.repo

 [Centos-old]
    name=CentOS-7.4.1708 - Base
    baseurl=http://vault.centos.org/7.4.1708/os/x86_64/
    gpgcheck=0
    #gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-old

다운그레이드를 수행하기 전에 이 저장소를 사용하고 도커 이미지에 푸시합니다.

FROM centos/systemd
ENV container docker
COPY CentOS-Old.repo /etc/yum.repos.d/
RUN yum -y downgrade openldap-2.4.44-5.el7.x86_64 
RUN yum -y install openldap-servers-2.4.44-5.el7.x86_64 openldap-clients-2.4.44-5.el7.x86_64
CMD ["/usr/sbin/init"]

관련 정보