Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
VERSION_NUM=7
MIRROR=0
- tag_suffix: aarch64_el8
dockerfile: ./docker/Dockerfile.centos-stream
dockerfile: ./docker/Dockerfile.centos
build_args: |
VERSION_NUM=8
MIRROR=0
Expand Down
7 changes: 4 additions & 3 deletions docker/Dockerfile.centos
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ARG VERSION_NUM="7"
FROM centos:$VERSION_NUM
FROM dph5199278/centos:$VERSION_NUM
ARG VERSION_NUM
ARG MIRROR=0
LABEL Author="Rex Zhou <zrx879582094@gmail.com>"
Expand All @@ -9,12 +9,13 @@ WORKDIR /data
# Copy all files
COPY ./docker/ /data/docker/

SHELL ["/entrypoint.sh"]

RUN export MIRROR="$MIRROR" && \
bash ./docker/modify_yum_source.sh && \
if [ "$VERSION_NUM" = "8" ]; then \
yum install -y perl perl-IPC-Cmd perl-Time-Piece systemd-devel openssl-devel && \
yum install -y 'dnf-command(config-manager)' && \
yum config-manager --set-enabled powertools; \
yum install -y 'dnf-command(config-manager)'; \
elif [ "$VERSION_NUM" = "7" ]; then \
yum install -y systemd-devel perl perl-IPC-Cmd perl-Time-Piece ;\
elif [ "$VERSION_NUM" = "6" ]; then \
Expand Down
12 changes: 7 additions & 5 deletions docker/Dockerfile.centos5
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
FROM centos:5 AS builder
FROM dph5199278/centos:5 AS builder
ARG MIRROR=1
WORKDIR /data

COPY ./docker/*.sh /data/docker/
COPY ./downloads/perl* /data/

SHELL ["/entrypoint.sh"]

RUN export MIRROR="$MIRROR" && \
bash ./docker/modify_yum_source.sh && \
yum install -y gcc44 make
Expand All @@ -15,18 +17,18 @@ RUN mkdir -p perl && tar xfz perl-*.tar.gz --strip-components=1 -C perl && pushd
RUN rm -rf perl-*.tar.gz perl


FROM centos:5
FROM dph5199278/centos:5
ARG 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/

SHELL ["/entrypoint.sh"]

RUN export MIRROR="$MIRROR" && \
bash ./docker/modify_yum_source.sh && \
yum install -y gcc44 autoconf automake make rpm-build setarch pam-devel krb5-devel zlib-devel && \
sed 's|]$|-i386]|;s|\$basearch|i386|g' /etc/yum.repos.d/CentOS-Base.repo > /etc/yum.repos.d/CentOS-Base-i386.repo && \
yum makecache && \
yum install -y gcc44 autoconf automake make rpm-build pam-devel krb5-devel zlib-devel && \
yum install -y glibc-devel.i386 libgcc.i386 pam-devel.i386 krb5-devel.i386 zlib-devel.i386 e2fsprogs-devel.i386 && \
yum clean all

Expand Down
98 changes: 24 additions & 74 deletions docker/modify_yum_source.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,95 +8,45 @@
RELEASE_VER=$(rpm --eval '%{?dist}')
[ -z "$RELEASE_VER" ] && RELEASE_VER=".el5"

# Cent OS 5 is NOT support modern SSL protocol, so use plain HTTP protocol.
if [ "$RELEASE_VER" != ".el5" ]; then
function modify_el() {
if [ "$MIRROR" != "0" ]; then
# Using 163 mirror, which is much useful for Chinese users.
MIRROR_URL="mirrors.163.com/centos-vault";
else
# Default mirror, the nsc mirror link.
MIRROR_URL="mirror.nsc.liu.se/centos-store";
fi

sed -e "s|mirror.nsc.liu.se/centos-store|${MIRROR_URL}|g" \
/etc/yum.repos.d/CentOS-*.repo && \
rm -rf /var/cache/yum/ && \
yum makecache
}

function modify_amzn() {
if [ "$MIRROR" != "0" ]; then
# Using USTC mirror, which is much useful for Chinese users.
MIRROR_URL="https://mirrors.ustc.edu.cn/centos-vault";
AWS_DOMAIN="amazonaws.com.cn"
AWS_REGION="cn-northwest-1"
else
# Default mirror, the official mirror link.
MIRROR_URL="https://vault.centos.org/";
AWS_DOMAIN="amazonaws.com"
AWS_REGION="us-east-2"
fi
else
MIRROR_URL="http://mirrors.huaweicloud.com"
fi

# For ARM platform, the mirror url needs a suffix `altarch`
if [ "$(uname -m)" = "aarch64" ]; then
OS_KEY="altarch"
if [ "$RELEASE_VER" != ".el8" ]; then
MIRROR_URL="$MIRROR_URL/$OS_KEY";
fi
else
OS_KEY="centos"
fi

function modify_el8() {
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=${MIRROR_URL}/8.5.2111|g" \
-i.bak /etc/yum.repos.d/CentOS-*.repo && \
rm -rf /var/cache/yum/ && \
yum makecache timer
}

function modify_el7() {
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e "s@^#baseurl=http://mirror.centos.org/$OS_KEY/\$releasever@baseurl=${MIRROR_URL}/7.9.2009@g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=${MIRROR_URL}/7.9.2009|g" \
-i.bak /etc/yum.repos.d/CentOS-*.repo && \
rm -rf /var/cache/yum/ && \
yum makecache fast
}

function modify_el6() {
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/$OS_KEY/\$releasever|baseurl=${MIRROR_URL}/6.10|g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=${MIRROR_URL}/6.10|g" \
-i.bak /etc/yum.repos.d/CentOS-*.repo && \
rm -rf /var/cache/yum/ && \
yum makecache fast
}

function modify_el5() {
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|^#baseurl=http://mirror.centos.org/centos/\$releasever|baseurl=${MIRROR_URL}/centos-vault/5.11|g" \
-e "s|^#baseurl=http://mirror.centos.org/\$contentdir/\$releasever|baseurl=${MIRROR_URL}/centos-vault/5.11|g" \
-i.bak /etc/yum.repos.d/*.repo && \
rm -rf /var/cache/yum/ && \
yum makecache fast
[ -d /etc/yum/vars ] && echo "$AWS_DOMAIN" > /etc/yum/vars/awsdomain && echo "$AWS_REGION" > /etc/yum/vars/awsregion
[ -d /etc/dnf/vars ] && echo "$AWS_DOMAIN" > /etc/dnf/vars/awsdomain && echo "$AWS_REGION" > /etc/dnf/vars/awsregion
}

case $RELEASE_VER in
.el8)
modify_el8
;;
.el7)
modify_el7
;;
.el6)
modify_el6
;;
.el5)
modify_el5
;;
.amzn1)
echo "$AWS_DOMAIN" > /etc/yum/vars/awsdomain
echo "$AWS_REGION" > /etc/yum/vars/awsregion
;;
.amzn2)
echo "$AWS_DOMAIN" > /etc/yum/vars/awsdomain
echo "$AWS_REGION" > /etc/yum/vars/awsregion
.el*)
modify_el
;;
.amzn2023)
echo "$AWS_DOMAIN" > /etc/dnf/vars/awsdomain
echo "$AWS_REGION" > /etc/dnf/vars/awsregion
.amzn*)
modify_amzn
;;
*)
echo "rpm dist undefined, please specify: el5 el6 el7"
echo "rpm dist undefined, please specify: el5 el6 el7 el8"
exit 1
;;
esac
esac
2 changes: 1 addition & 1 deletion pullsrc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ if [[ ! -f $ASKPASSSRC && ${DOCKERBUILD:-0} == 0 ]]; then
echo "!!! Please download $ASKPASSSRC in $PWD by yourself."
fi

if [[ $($__dir/compile.sh GETEL) == "el5" && ${DOCKERBUILD:-0} == 1 && ! -f $PERLSRC ]]; then
if [[ ${DOCKERBUILD:-0} == 1 && ! -f $PERLSRC ]]; then
echo Get: $PERLMIR/$PERLSRC
wget --no-check-certificate $PERLMIR/$PERLSRC || \
echo "!!! Please download $PERLSRC in $PWD by yourself."
Expand Down