From 01a7842d5a4cf69be3448dd1e72e6e9d7dec3543 Mon Sep 17 00:00:00 2001 From: Muhamad Aditya Prima Date: Tue, 17 Dec 2024 02:50:23 +0700 Subject: [PATCH] Added php5.6 full package with almalinux8-micro --- .gitea/workflows/php5-almalinux.yaml | 7 ++ 5/Dockerfile.alpine | 2 + 5/Dockerfile.cli-almalinux | 94 ++++++++----------- 5/Dockerfile.full-almalinux | 132 +++++++++++++++++++++++++++ 5/scripts/almalinux-setup.sh | 32 +++++++ 5 files changed, 213 insertions(+), 54 deletions(-) create mode 100644 5/Dockerfile.full-almalinux create mode 100644 5/scripts/almalinux-setup.sh diff --git a/.gitea/workflows/php5-almalinux.yaml b/.gitea/workflows/php5-almalinux.yaml index b0b7e1c..48faa69 100644 --- a/.gitea/workflows/php5-almalinux.yaml +++ b/.gitea/workflows/php5-almalinux.yaml @@ -21,6 +21,13 @@ jobs: mode: cli with_server: "false" with_database: "false" + - os: "almalinux" + os_version: "8.10" + php_version: "5.6" + php_ver_short: "56" + mode: full + with_server: "false" + with_database: "false" steps: - name: Check out repository code uses: actions/checkout@v4 diff --git a/5/Dockerfile.alpine b/5/Dockerfile.alpine index 29c576f..e96f11a 100644 --- a/5/Dockerfile.alpine +++ b/5/Dockerfile.alpine @@ -6,11 +6,13 @@ LABEL maintainer=" map@sindigilive.com" ARG FLAVOR=cli ARG WITH_APACHE=false +ARG WITH_DATABASE=false ARG PHP_VERSION=5.6 ARG PHP_VER_SHORT=5 ENV FLAVOR=${FLAVOR} ENV WITH_APACHE=${WITH_APACHE} +ENV WITH_DATABASE=${WITH_DATABASE} ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} diff --git a/5/Dockerfile.cli-almalinux b/5/Dockerfile.cli-almalinux index 2f0471b..46d2631 100644 --- a/5/Dockerfile.cli-almalinux +++ b/5/Dockerfile.cli-almalinux @@ -12,20 +12,23 @@ ENV WITH_APACHE=${WITH_APACHE} ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} +ENV ROOTFS=/mnt/rootfs + WORKDIR /tmp -RUN mkdir -p /mnt/rootfs; \ +RUN mkdir -p ${ROOTFS}; \ dnf -y update; \ - dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm \ - --releasever 8 --setopt install_weak_deps=false --nodocs -y; \ + dnf install --installroot ${ROOTFS} \ + http://rpms.remirepo.net/enterprise/remi-release-8.rpm \ + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y; \ dnf module reset php; \ - dnf install --installroot /mnt/rootfs \ + dnf install --installroot ${ROOTFS} \ coreutils-single \ glibc-minimal-langpack \ php${PHP_VER_SHORT}-php-cli \ php${PHP_VER_SHORT}-php-common \ - --releasever 8 --setopt install_weak_deps=false --nodocs -y; \ - dnf --installroot /mnt/rootfs clean all; + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y; \ + dnf --installroot ${ROOTFS} clean all; FROM quay.io/sindigilive/almalinux:${OS_VERSION}-micro AS stage2 @@ -33,65 +36,48 @@ ARG PHP_VER_SHORT=56 RUN mkdir -p /app; +ENV ROOTFS=/mnt/rootfs + +ENV SRC=${ROOTFS}/usr/lib64 + COPY --from=builder \ - /mnt/rootfs/usr/lib64/libcrypt.so.1 \ - /mnt/rootfs/usr/lib64/libedit.so.0 \ - /mnt/rootfs/usr/lib64/libstdc++.so.6 \ - /mnt/rootfs/usr/lib64/libz.so.1 \ - /mnt/rootfs/usr/lib64/libpcre.so.1 \ - /mnt/rootfs/usr/lib64/libxml2.so.2 \ - /mnt/rootfs/usr/lib64/liblzma.so.5 \ - /mnt/rootfs/usr/lib64/libgssapi_krb5.so.2 \ - /mnt/rootfs/usr/lib64/libkrb5.so.3 \ - /mnt/rootfs/usr/lib64/libk5crypto.so.3 \ - /mnt/rootfs/usr/lib64/libcom_err.so.2 \ - /mnt/rootfs/usr/lib64/libssl.so.1.1 \ - /mnt/rootfs/usr/lib64/libcrypto.so.1.1 \ - /mnt/rootfs/usr/lib64/libkrb5support.so.0 \ - /mnt/rootfs/usr/lib64/libkeyutils.so.1 \ - /mnt/rootfs/usr/lib64/libbz2.so.1 \ - /mnt/rootfs/usr/lib64/libcurl.so.4 \ - /mnt/rootfs/usr/lib64/libbz2.so.1 \ - /mnt/rootfs/usr/lib64/libnghttp2.so.14 \ - /mnt/rootfs/usr/lib64/libzstd.so.1 \ - /mnt/rootfs/usr/lib64/libidn2.so.0 \ - /mnt/rootfs/usr/lib64/libssh.so.4 \ - /mnt/rootfs/usr/lib64/libpsl.so.5 \ - /mnt/rootfs/usr/lib64/libldap-2.4.so.2 \ - /mnt/rootfs/usr/lib64/liblber-2.4.so.2 \ - /mnt/rootfs/usr/lib64/libbrotlidec.so.1 \ - /mnt/rootfs/usr/lib64/libunistring.so.2 \ - /mnt/rootfs/usr/lib64/libsasl2.so.3 \ - /mnt/rootfs/usr/lib64/libbrotlicommon.so.1 \ + ${SRC}/libcrypt.so.1 ${SRC}/libedit.so.0 ${SRC}/libstdc++.so.6 \ + ${SRC}/libz.so.1 ${SRC}/libpcre.so.1 ${SRC}/libxml2.so.2 \ + ${SRC}/liblzma.so.5 ${SRC}/libgssapi_krb5.so.2 ${SRC}/libkrb5.so.3 \ + ${SRC}/libk5crypto.so.3 ${SRC}/libcom_err.so.2 ${SRC}/libssl.so.1.1 \ + ${SRC}/libcrypto.so.1.1 ${SRC}/libkrb5support.so.0 ${SRC}/libkeyutils.so.1 \ + ${SRC}/libbz2.so.1 ${SRC}/libcurl.so.4 ${SRC}/libbz2.so.1 \ + ${SRC}/libnghttp2.so.14 ${SRC}/libzstd.so.1 ${SRC}/libidn2.so.0 \ + ${SRC}/libssh.so.4 ${SRC}/libpsl.so.5 ${SRC}/libldap-2.4.so.2 \ + ${SRC}/liblber-2.4.so.2 ${SRC}/libbrotlidec.so.1 ${SRC}/libunistring.so.2 \ + ${SRC}/libsasl2.so.3 ${SRC}/libbrotlicommon.so.1 \ /usr/lib64 -COPY --from=builder /mnt/rootfs/usr/share/Modules/modulefiles/php56 /usr/share/Modules/modulefiles/php56 -COPY --from=builder /mnt/rootfs/opt/remi /opt/remi -COPY --from=builder /mnt/rootfs/var/opt/remi /var/opt/remi -COPY --from=builder /mnt/rootfs/etc/opt/remi /etc/opt/remi -COPY --from=builder /mnt/rootfs/etc/scl/prefixes/php56 /etc/scl/prefixes/php56 +COPY --from=builder ${ROOTFS}/usr/share/Modules/modulefiles/php56 /usr/share/Modules/modulefiles/php56 +COPY --from=builder ${ROOTFS}/opt/remi /opt/remi +COPY --from=builder ${ROOTFS}/var/opt/remi /var/opt/remi +COPY --from=builder ${ROOTFS}/etc/opt/remi /etc/opt/remi +COPY --from=builder ${ROOTFS}/etc/scl/prefixes/php56 /etc/scl/prefixes/php56 FROM scratch -ARG OS_VERSION=8.10 - -LABEL maintainer="Muhamad Aditya Prima " -LABEL name="almalinux-micro" -LABEL version="${OS_VERSION}" -LABEL distribution-scope="public" - -#labels for container catalog -LABEL summary="Almalinux 9 micro container image" -LABEL description="Provide latest release of micro Almalinux 9 container base image" -LABEL io.k8s.description="Very small almalinux 9 based image which doesn't install package manager" -LABEL io.k8s.display-name="Almalinux 9 Micro" - ARG PHP_VERSION=5.6 -ARG PHP_VER_SHORT=56 +ARG PHP_VER_SHORT=5 ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} +LABEL maintainer="Muhamad Aditya Prima " +LABEL name="php" +LABEL version="${PHP_VERSION}" +LABEL distribution-scope="public" + +#labels for container catalog +LABEL summary="PHP ${PHP_VERSION} on almalinux-micro based container image" +LABEL description="Provide php on almalinux-micro based container base image" +LABEL io.k8s.description="Small almalinux micro container image" +LABEL io.k8s.display-name="PHP ${PHP_VERSION}" + COPY --from=stage2 / / RUN ln -s /opt/remi/php${PHP_VER_SHORT}/root/usr/bin/php /usr/bin/php ; \ diff --git a/5/Dockerfile.full-almalinux b/5/Dockerfile.full-almalinux new file mode 100644 index 0000000..d938a2e --- /dev/null +++ b/5/Dockerfile.full-almalinux @@ -0,0 +1,132 @@ +ARG OS_VERSION=8.10 + +FROM quay.io/sindigilive/almalinux:${OS_VERSION} AS builder + +ARG FLAVOR=full +ARG WITH_APACHE=false +ARG WITH_DATABASE=false +ARG PHP_VERSION=5.6 +ARG PHP_VER_SHORT=56 + +ENV FLAVOR=${FLAVOR} +ENV WITH_APACHE=${WITH_APACHE} +ENV WITH_DATABASE=${WITH_DATABASE} +ENV PHP_VERSION=${PHP_VERSION} +ENV PHP_VER_SHORT=${PHP_VER_SHORT} + +WORKDIR /tmp + +ADD 5/scripts/almalinux-setup.sh ./setup.sh + +ENV ROOTFS=/mnt/rootfs + +RUN /bin/mkdir -p ${ROOTFS}; \ + /bin/chmod +x ./setup.sh; \ + /usr/bin/dnf install --installroot ${ROOTFS} \ + coreutils-single \ + glibc-minimal-langpack \ + epel-release \ + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y ; \ + /usr/bin/dnf install --installroot ${ROOTFS} \ + http://rpms.remirepo.net/enterprise/remi-release-8.rpm \ + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y ; \ + /usr/bin/dnf install --installroot ${ROOTFS} \ + php${PHP_VER_SHORT}-php-cli \ + php${PHP_VER_SHORT}-php-common \ + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y ; \ + /bin/sh ./setup.sh ; \ + /usr/bin/dnf --installroot ${ROOTFS} clean all ; \ + /bin/rm -f ./setup.sh ; + +FROM quay.io/sindigilive/almalinux:${OS_VERSION}-micro AS stage2 + +ARG PHP_VER_SHORT=56 + +ENV ROOTFS=/mnt/rootfs +ENV SRC=${ROOTFS}/usr/lib64 + +RUN mkdir -p /app ; \ + echo "php:x:1001:" >> /etc/group ; \ + echo "php:x:1001:1001:php:/app:/bin/sh" >> /etc/passwd ; \ + echo "php:!!:20070::::::" >> /etc/shadow ; + +COPY --from=builder \ + ${SRC}/libcrypt.so.1 ${SRC}/libedit.so.0 ${SRC}/libstdc++.so.6 \ + ${SRC}/libz.so.1 ${SRC}/libpcre.so.1 ${SRC}/libxml2.so.2 \ + ${SRC}/liblzma.so.5 ${SRC}/libgssapi_krb5.so.2 ${SRC}/libkrb5.so.3 \ + ${SRC}/libk5crypto.so.3 ${SRC}/libcom_err.so.2 ${SRC}/libssl.so.1.1 \ + ${SRC}/libcrypto.so.1.1 ${SRC}/libkrb5support.so.0 ${SRC}/libkeyutils.so.1 \ + ${SRC}/libbz2.so.1 ${SRC}/libcurl.so.4 ${SRC}/libbz2.so.1 \ + ${SRC}/libnghttp2.so.14 ${SRC}/libzstd.so.1 ${SRC}/libidn2.so.0 \ + ${SRC}/libssh.so.4 ${SRC}/libpsl.so.5 ${SRC}/libldap-2.4.so.2 \ + ${SRC}/liblber-2.4.so.2 ${SRC}/libbrotlidec.so.1 ${SRC}/libunistring.so.2 \ + ${SRC}/libsasl2.so.3 ${SRC}/libbrotlicommon.so.1 ${SRC}/libdb-5.3.so \ + ${SRC}/libenchant.so.1 ${SRC}/libgd.so.103 ${SRC}/libgmp.so.10 \ + ${SRC}/libc-client.so.2007 ${SRC}/libfbclient.so.2 ${SRC}/libicui18n.so.69 \ + ${SRC}/libldap_r-2.4.so.2 ${SRC}/libmcrypt.so.4 ${SRC}/libsqlite3.so.0 \ + ${SRC}/libtidy.so.5 ${SRC}/libexslt.so.0 ${SRC}/libbrotlienc.so.1 \ + ${SRC}/libgeos_c.so.1 ${SRC}/libMagickWand-6.Q16.so.7 ${SRC}/libpurple.so.0 \ + ${SRC}/libtokyocabinet.so.9 ${SRC}/libgmodule-2.0.so.0 ${SRC}/libt1.so.5 \ + ${SRC}/libpam.so.0 ${SRC}/libtommath.so.1 ${SRC}/libicuuc.so.69 \ + ${SRC}/libltdl.so.7 ${SRC}/libxslt.so.1 ${SRC}/libgeos-3.7.2.so \ + ${SRC}/libMagickCore-6.Q16.so.7 ${SRC}/libdbus-glib-1.so.2 ${SRC}/libglib-2.0.so.0 \ + ${SRC}/libX11.so.6 ${SRC}/libaudit.so.1 ${SRC}/libtomcrypt.so.1 \ + ${SRC}/libicudata.so.69 ${SRC}/libgcrypt.so.20 ${SRC}/libtomcrypt.so.1 \ + ${SRC}/liblcms2.so.2 ${SRC}/libdbus-1.so.3 ${SRC}/libgnutls.so.30 \ + ${SRC}/libXpm.so.4 ${SRC}/libcap-ng.so.0 ${SRC}/libicuio.so.69 \ + ${SRC}/libgpg-error.so.0 ${SRC}/libraqm.so.0 ${SRC}/libgthread-2.0.so.0 \ + ${SRC}/libp11-kit.so.0 ${SRC}/libpng16.so.16 ${SRC}/libfontconfig.so.1 \ + ${SRC}/libfarstream-0.2.so.5 ${SRC}/libtasn1.so.6 ${SRC}/libjpeg.so.62 \ + ${SRC}/libfreetype.so.6 ${SRC}/libgstvideo-1.0.so.0 ${SRC}/libnettle.so.6 \ + ${SRC}/libimagequant.so.0 ${SRC}/libXext.so.6 ${SRC}/libgstapp-1.0.so.0 \ + ${SRC}/libhogweed.so.4 ${SRC}/libtiff.so.5 ${SRC}/libXt.so.6 \ + ${SRC}/libgstbase-1.0.so.0 ${SRC}/libffi.so.6 ${SRC}/libwebp.so.7 \ + ${SRC}/libSM.so.6 ${SRC}/libgstreamer-1.0.so.0 ${SRC}/libavif.so.14 \ + ${SRC}/libICE.so.6 ${SRC}/libgobject-2.0.so.0 ${SRC}/libgomp.so.1 \ + ${SRC}/libidn.so.11 ${SRC}/libxcb.so.1 ${SRC}/libharfbuzz.so.0 \ + ${SRC}/libgio-2.0.so.0 ${SRC}/libfribidi.so.0 ${SRC}/libsystemd.so.0 \ + ${SRC}/libexpat.so.1 ${SRC}/liborc-0.4.so.0 ${SRC}/libuuid.so.1 \ + ${SRC}/libmount.so.1 ${SRC}/libjbig.so.2.1 ${SRC}/libgraphite2.so.3 \ + ${SRC}/liblz4.so.1 ${SRC}/libdav1d.so.3 ${SRC}/libXau.so.6 \ + ${SRC}/libblkid.so.1 ${SRC}/libSvtAv1Enc.so.0 ${SRC}/libaom.so.3 \ + /usr/lib64 + +COPY --from=builder ${ROOTFS}/usr/share/Modules/modulefiles/php56 /usr/share/Modules/modulefiles/php56 +COPY --from=builder ${ROOTFS}/opt/remi /opt/remi +COPY --from=builder ${ROOTFS}/var/opt/remi /var/opt/remi +COPY --from=builder ${ROOTFS}/etc/opt/remi /etc/opt/remi +COPY --from=builder ${ROOTFS}/etc/scl/prefixes/php56 /etc/scl/prefixes/php56 + +FROM scratch + +ARG PHP_VERSION=5.6 +ARG PHP_VER_SHORT=56 + +ENV PHP_VERSION=${PHP_VERSION} +ENV PHP_VER_SHORT=${PHP_VER_SHORT} + +LABEL maintainer="Muhamad Aditya Prima " +LABEL name="php" +LABEL version="${PHP_VERSION}" +LABEL distribution-scope="public" + +#labels for container catalog +LABEL summary="PHP ${PHP_VERSION} on almalinux-micro based container image" +LABEL description="Provide php on almalinux-micro based container base image" +LABEL io.k8s.description="Small almalinux micro container image" +LABEL io.k8s.display-name="PHP ${PHP_VERSION}" + +COPY --from=stage2 / / + +RUN ln -s /opt/remi/php${PHP_VER_SHORT}/root/usr/bin/php /usr/bin/php ; \ + ln -s /opt/remi/php${PHP_VER_SHORT}/root/usr/bin/php-cgi /usr/bin/php-cgi ; \ + ln -s /opt/remi/php${PHP_VER_SHORT}/root/usr/bin/php-phar /usr/bin/php-phar ; \ + ln -s /opt/remi/php${PHP_VER_SHORT}/root/usr/bin/phpize /usr/bin/phpize ; + +USER php + +WORKDIR /app + +STOPSIGNAL SIGQUIT + +CMD ["/usr/bin/php", "-v"] \ No newline at end of file diff --git a/5/scripts/almalinux-setup.sh b/5/scripts/almalinux-setup.sh new file mode 100644 index 0000000..509de74 --- /dev/null +++ b/5/scripts/almalinux-setup.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +PHP_LIST="bcmath,brotli,dba,embedded,enchant, +gd,geos,gmp,imap,interbase, +intl,ioncube-loader,ldap,lz4,magickwand, +mbstring,mcrypt,opcache,pear,phurple, +soap,tidy,twig,xcache,xml, +xmlrpc,zstd"; +PHP_DEPS=""; + +# apache2 configurations +SERVER_ROOT="/app"; +APP_ROOT="$SERVER_ROOT/htdocs"; +LOG_LEVEL="info"; + +# Setup php flavor +if [ "$FLAVOR" == "full" ] || [ "$FLAVOR" == "debug" ]; then + for i in $(echo $PHP_LIST | tr "," "\n"); do + PHP_DEPS="${PHP_DEPS} php$PHP_VER_SHORT-php-$i "; + done + + /usr/bin/dnf install --installroot $ROOTFS \ + $PHP_DEPS \ + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y; +fi + +if [[ "$FLAVOR" == "debug" ]]; then + LOG_LEVEL="debug"; + /usr/bin/dnf install --installroot $ROOTFS \ + php$PHP_VER_SHORT-php-dbg \ + --releasever 8 --setopt install_weak_deps=false --nodocs --nogpgcheck -y; +fi \ No newline at end of file