From 7440fe39369e3d6ab92de93c75f6306712d653a1 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 22 Jul 2021 12:03:28 +0000 Subject: [PATCH] update to 1.3.3 version, support multi-version build --- docker/Dockerfile | 2 +- docker/config.json | 3 +- docker/download.sh | 4 +- docker/fast-compiler.sh | 2 + docker/multi-version-compiler.sh | 66 ++++++++++++++++++++++++++++++++ 5 files changed, 72 insertions(+), 5 deletions(-) create mode 100755 docker/multi-version-compiler.sh diff --git a/docker/Dockerfile b/docker/Dockerfile index 7e19fe81..cb8c0bd1 100755 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM alpine:latest # define script basic information # Version of this Dockerfile -ENV SCRIPT_VERSION=1.3.2 +ENV SCRIPT_VERSION=1.3.3 # Download address uses backup address # (if downloading slowly, consider set it to yes) ENV USE_BACKUP=no diff --git a/docker/config.json b/docker/config.json index 816a9644..2f12f95e 100755 --- a/docker/config.json +++ b/docker/config.json @@ -36,8 +36,7 @@ "liblzma": { "version": "master", "link": "https://dl.zhamao.me/liblzma/liblzma.tar.gz", - "link_2": "https://github.com/kobolabs/liblzma/archive/refs/heads/master.zip", - "alt_name": "master" + "link_2": "https://github.com/kobolabs/liblzma/archive/refs/heads/master.zip" }, "curl": { "version": "7.78.0", diff --git a/docker/download.sh b/docker/download.sh index bb6be0e7..c68d839b 100755 --- a/docker/download.sh +++ b/docker/download.sh @@ -29,10 +29,10 @@ archive_find_zip=$(find cache/ -name "$1.*" | grep -E ".zip" | tail -n1) if [ "$archive_find_tar" != "" ]; then echo "Using cache for $1 ($archive_find_tar)" - tar -zxvf $archive_file_tar -C $SELF_DIR/source + tar -zxvf "$archive_find_tar" elif [ "$archive_find_zip" != "" ]; then echo "Using cache for $1 ($archive_find_zip)" - unzip $archive_find_zip -d $SELF_DIR/source + unzip $archive_find_zip -d "$SELF_DIR/source" else if [ "$3" != "" ]; then wget -q --show-progress "$(readconf ".$1.link$_use_backup" | sed 's/{version}/'$3'/g')" diff --git a/docker/fast-compiler.sh b/docker/fast-compiler.sh index 8b2a7c30..fc5b811c 100755 --- a/docker/fast-compiler.sh +++ b/docker/fast-compiler.sh @@ -1,5 +1,7 @@ #!/bin/sh +# This script needs alpine linux system. + VER_PHP="7.4.21" USE_BACKUP="no" diff --git a/docker/multi-version-compiler.sh b/docker/multi-version-compiler.sh new file mode 100755 index 00000000..cf74f480 --- /dev/null +++ b/docker/multi-version-compiler.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +USE_BACKUP="no" + +LINK_APK_REPO='mirrors.ustc.edu.cn' +LINK_APK_REPO_BAK='dl-cdn.alpinelinux.org' + +if [ "${USE_BACKUP}" = "yes" ]; then \ + echo "Using backup address..." && sleep 1s + LINK_APK_REPO=${LINK_APK_REPO_BAK} +else + echo "Using original address..." && sleep 1s +fi + +sed -i 's/dl-cdn.alpinelinux.org/'${LINK_APK_REPO}'/g' /etc/apk/repositories + +# build requirements +apk add bash wget cmake gcc g++ jq autoconf git libstdc++ linux-headers make m4 libgcc binutils ncurses +# php zlib dependencies +apk add zlib-dev zlib-static +# php mbstring dependencies +apk add oniguruma-dev +# php openssl dependencies +apk add openssl-libs-static openssl-dev openssl +# php gd dependencies +apk add libpng-dev libpng-static +# curl c-ares dependencies +apk add c-ares-static c-ares-dev +# php event dependencies +apk add libevent libevent-dev libevent-static +# php sqlite3 dependencies +apk add sqlite sqlite-dev sqlite-libs sqlite-static + +chmod +x download.sh check-extensions.sh compile-php.sh + +./download.sh swoole ${USE_BACKUP} && \ + ./download.sh inotify ${USE_BACKUP} && \ + ./download.sh mongodb ${USE_BACKUP} && \ + ./download.sh event ${USE_BACKUP} && \ + ./download.sh redis ${USE_BACKUP} && \ + ./download.sh libxml2 ${USE_BACKUP} && \ + ./download.sh liblzma ${USE_BACKUP} && \ + ./download.sh curl ${USE_BACKUP} + +if [ ! -d "multi-build" ]; then + mkdir ./multi-build +fi + +for VER_PHP in "7.2.34" "7.3.29" "7.4.21" "8.0.8" +do + ./download.sh swoole ${USE_BACKUP} && \ + ./download.sh inotify ${USE_BACKUP} && \ + ./download.sh mongodb ${USE_BACKUP} && \ + ./download.sh event ${USE_BACKUP} && \ + ./download.sh redis ${USE_BACKUP} && \ + ./download.sh libxml2 ${USE_BACKUP} && \ + ./download.sh liblzma ${USE_BACKUP} && \ + ./download.sh curl ${USE_BACKUP} && \ + ./download.sh php ${USE_BACKUP} ${VER_PHP} && \ + ./check-extensions.sh check_before_configure && \ + ./compile-php.sh ${VER_PHP} && \ + cp ./php-dist/bin/php ./multi-build/php-${VER_PHP} && \ + rm -rf ./source +done + + \ No newline at end of file