From b2eaa692fa8f50c6c4cdec702ba1b1e6bdcd0520 Mon Sep 17 00:00:00 2001 From: boypt <1033514+boypt@users.noreply.github.com> Date: Thu, 9 Apr 2026 03:45:27 +0000 Subject: [PATCH] docker: centos 5 builder; fix CMD --- compile.sh | 7 ++++--- docker/Dockerfile.amazonlinux | 2 +- docker/Dockerfile.centos | 2 +- docker/Dockerfile.centos-stream | 2 +- docker/Dockerfile.centos5 | 29 ++++++++++++++++++++--------- docker/Dockerfile.openeuler | 2 +- docker/Dockerfile.rockylinux | 2 +- 7 files changed, 29 insertions(+), 17 deletions(-) diff --git a/compile.sh b/compile.sh index f0d8fe6..1b53c58 100755 --- a/compile.sh +++ b/compile.sh @@ -170,16 +170,17 @@ case $arg1 in exit 0 ;; *) - [[ -n $arg1 ]] && \ + [[ -n $arg1 && ! -d $arg1 ]] && \ echo -e "Subcmd: $arg1 not found.\n GETEL, GETRPM, RPMDIR" && \ exit 1 ;; esac # manual specified dist -[[ -n $arg1 && -d $__dir/$arg1 ]] && rpmtopdir=$arg1 && BUILD_RPM && exit 0 -TOPDIR_SELECT +[[ -n $arg1 && -d $arg1 ]] && rpmtopdir=$arg1 && BUILD_RPM && exit 0 +# auto select dist +TOPDIR_SELECT if [[ ! -d $rpmtopdir ]]; then echo "This script works only in el5/el6/el7" echo "eg: ${0} el7" diff --git a/docker/Dockerfile.amazonlinux b/docker/Dockerfile.amazonlinux index 6c9b3ee..c842d86 100644 --- a/docker/Dockerfile.amazonlinux +++ b/docker/Dockerfile.amazonlinux @@ -21,4 +21,4 @@ RUN export CHINA_MIRROR="$CHINA_MIRROR" && \ yum install -y wget autoconf automake gcc make rpm-build openssl-devel pam-devel krb5-devel zlib-devel libXt-devel libX11-devel perl perl-IPC-Cmd perl-Time-Piece && \ yum clean all -CMD ["./compile.sh"] +CMD ["./docker/docker_compile.sh"] diff --git a/docker/Dockerfile.centos b/docker/Dockerfile.centos index b712a15..e65d1c7 100644 --- a/docker/Dockerfile.centos +++ b/docker/Dockerfile.centos @@ -26,4 +26,4 @@ RUN export CHINA_MIRROR="$CHINA_MIRROR" && \ yum clean all && \ rm -rfv /data/ -CMD ["./compile.sh"] +CMD ["./docker/docker_compile.sh"] diff --git a/docker/Dockerfile.centos-stream b/docker/Dockerfile.centos-stream index 7dd40f7..a490bf8 100644 --- a/docker/Dockerfile.centos-stream +++ b/docker/Dockerfile.centos-stream @@ -31,4 +31,4 @@ RUN if [ "$VERSION_NUM" = "8" ]; then \ yum install -y wget autoconf automake gcc make perl rpm-build pam-devel krb5-devel zlib-devel openssl-devel systemd-devel && \ yum clean all -CMD ["./compile.sh"] +CMD ["./docker/docker_compile.sh"] diff --git a/docker/Dockerfile.centos5 b/docker/Dockerfile.centos5 index 20143ff..63ff060 100644 --- a/docker/Dockerfile.centos5 +++ b/docker/Dockerfile.centos5 @@ -1,22 +1,33 @@ -FROM centos:5 +FROM centos:5 AS builder ARG CHINA_MIRROR=1 - WORKDIR /data -# Copy all files -COPY ./docker/ /data/docker/ +COPY ./docker/*.sh /data/docker/ COPY ./downloads/perl* /data/ RUN export CHINA_MIRROR="$CHINA_MIRROR" && \ bash ./docker/modify_yum_source.sh && \ - yum install -y gcc44 autoconf automake make rpm-build pam-devel krb5-devel zlib-devel + yum install -y gcc44 make -RUN mkdir -p perl && tar xfz perl-*.tar.gz --strip-components=1 -C perl && \ - pushd perl && export CC=gcc44 && ./configure.gnu && make -j2 && make install.perl && popd && \ - rm -rfv /data/ +RUN mkdir -p perl && tar xfz perl-*.tar.gz --strip-components=1 -C perl && pushd perl && \ + ./Configure -des -Dusethreads -Uuseshrplib -Uoptimize=-g -Dcc=gcc44 -Dprefix=/usr/local/perl && \ + make $(rpm --eval %{?_smp_mflags}) && make install_strip +RUN rm -rf perl-*.tar.gz perl + + +FROM centos:5 +ARG CHINA_MIRROR=1 +ENV PATH=/usr/local/perl/bin:$PATH +WORKDIR /data +COPY --from=builder /usr/local/perl /usr/local/perl +COPY ./docker/*.sh /data/docker/ + +RUN export CHINA_MIRROR="$CHINA_MIRROR" && \ + bash ./docker/modify_yum_source.sh && \ + yum install -y gcc44 autoconf automake make rpm-build pam-devel krb5-devel zlib-devel RUN cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base-i386.repo && \ sed -i 's|]$|-i386]|;s|\$basearch|i386|g' /etc/yum.repos.d/CentOS-Base-i386.repo && yum makecache && \ yum install -y glibc-devel.i386 libgcc.i386 pam-devel.i386 krb5-devel.i386 zlib-devel.i386 -CMD ["./compile.sh"] +CMD ["./docker/docker_compile.sh"] diff --git a/docker/Dockerfile.openeuler b/docker/Dockerfile.openeuler index dd52093..c3a5a14 100644 --- a/docker/Dockerfile.openeuler +++ b/docker/Dockerfile.openeuler @@ -31,4 +31,4 @@ RUN if [ "$CHINA_MIRROR" != "0" ]; then \ perl perl-IPC-Cmd perl-Time-Piece wget && \ yum clean all -CMD ["./compile.sh"] +CMD ["./docker/docker_compile.sh"] diff --git a/docker/Dockerfile.rockylinux b/docker/Dockerfile.rockylinux index 96df1b4..7fa5346 100644 --- a/docker/Dockerfile.rockylinux +++ b/docker/Dockerfile.rockylinux @@ -29,4 +29,4 @@ RUN if [ "$CHINA_MIRROR" != "0" ]; then \ yum install -y wget autoconf automake gcc perl make rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel systemd-devel openssl-devel && \ yum clean all -CMD ["./compile.sh"] +CMD ["./docker/docker_compile.sh"]