diff --git a/docker/Dockerfile b/docker/Dockerfile index 99361d01..45e7098d 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.4.2 +ENV SCRIPT_VERSION=1.4.3 # Download address uses backup address ARG USE_BACKUP_ADDRESS @@ -42,6 +42,8 @@ RUN apk add c-ares-static c-ares-dev > /dev/null RUN apk add libevent libevent-dev libevent-static > /dev/null # php sqlite3 dependencies RUN apk add sqlite sqlite-dev sqlite-libs sqlite-static > /dev/null +# php libzip dependencies +RUN apk add bzip2-dev bzip2-static bzip2 RUN mkdir /app @@ -61,8 +63,9 @@ RUN ./download.sh swoole ${USE_BACKUP} > /dev/null && \ ./download.sh event ${USE_BACKUP} > /dev/null && \ ./download.sh redis ${USE_BACKUP} > /dev/null && \ ./download.sh libxml2 ${USE_BACKUP} > /dev/null && \ - ./download.sh liblzma ${USE_BACKUP} > /dev/null && \ - ./download.sh curl ${USE_BACKUP} > /dev/null + ./download.sh xz ${USE_BACKUP} > /dev/null && \ + ./download.sh curl ${USE_BACKUP} > /dev/null && \ + ./download.sh libzip ${USE_BACKUP} > /dev/null RUN echo "Downloading PHP ${VER_PHP} ..." RUN ./download.sh php ${USE_BACKUP} ${VER_PHP} > /dev/null diff --git a/docker/check-extensions.sh b/docker/check-extensions.sh index a6a02fd8..7a1e44c0 100755 --- a/docker/check-extensions.sh +++ b/docker/check-extensions.sh @@ -9,11 +9,11 @@ self_dir=$(cd "$(dirname "$0")";pwd) php_dir=$(find $self_dir/source -name "php-*" -type d | tail -n1) function do_xml_compiler() { - cd $self_dir/source/liblzma-* && \ - ./configure && \ + cd $self_dir/source/xz-* && \ + ./configure --enable-static=yes && \ make -j$(cat /proc/cpuinfo | grep processor | wc -l) && \ make install && \ - echo "liblzma compiled!" && sleep 2s && \ + echo "xz compiled!" && sleep 2s && \ cd ../libxml2-* && \ ./configure --prefix=/usr --with-lzma --without-python && \ make -j$(cat /proc/cpuinfo | grep processor | wc -l) && \ @@ -21,6 +21,16 @@ function do_xml_compiler() { echo "libxml2 compiled!" && sleep 2s } +function do_libzip_compiler() { + cd $self_dir/source/libzip-* && \ + mkdir build && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=no .. -Wno-dev -DENABLE_BZIP2=no -DENABLE_LZMA=no && \ + make LDFLAGS="-llzma -lbz2" -j$(cat /proc/cpuinfo | grep processor | wc -l) && \ + make install && \ + echo "libzip compiled!" && sleep 2s +} + function do_curl_compiler() { cd $self_dir/source/curl-* && \ CC=gcc CXX=g++ CFLAGS=-fPIC CPPFLAGS=-fPIC ./configure \ @@ -80,6 +90,16 @@ function check_before_configure() { sqlite3) ;; tokenizer) ;; zlib) ;; + zip) + if [ ! -f "$self_dir/source/.libzip_compiled" ]; then + do_libzip_compiler + touch "$self_dir/source/.libzip_compiled" + fi + if [ $? != 0 ]; then + echo "Compile libzip error!" + exit 1 + fi + ;; curl) if [ ! -f "$self_dir/source/.curl_compiled" ]; then do_curl_compiler @@ -223,6 +243,7 @@ function check_in_configure() { xmlreader) php_configure="$php_configure --enable-xmlreader" ;; xmlwriter) php_configure="$php_configure --enable-xmlwriter" ;; zlib) php_configure="$php_configure --with-zlib" ;; + zip) php_configure="$php_configure --with-zip" ;; *) echo "Unsupported extension '$loop' !" >&2 exit 1 diff --git a/docker/compile-php.sh b/docker/compile-php.sh index 4c415c97..1b28d7cb 100755 --- a/docker/compile-php.sh +++ b/docker/compile-php.sh @@ -27,6 +27,6 @@ cd $php_dir && \ $self_dir/check-extensions.sh check_after_configure && \ sed -ie 's/-export-dynamic//g' "Makefile" && \ sed -ie 's/-o $(SAPI_CLI_PATH)/-all-static -o $(SAPI_CLI_PATH)/g' "Makefile" && \ - make LDFLAGS=-ldl -j$(cat /proc/cpuinfo | grep processor | wc -l) && \ + make LDFLAGS="-ldl -llzma -lbz2" -j$(cat /proc/cpuinfo | grep processor | wc -l) && \ make install && \ strip $self_dir/php-dist/bin/php diff --git a/docker/config.json b/docker/config.json index 22749a1d..3c4b0ece 100755 --- a/docker/config.json +++ b/docker/config.json @@ -33,14 +33,19 @@ "link": "http://mirrors.zhamao.xin/library/libxml2/libxml2-{version}.tar.gz", "link_2": "http://xmlsoft.org/sources/libxml2-{version}.tar.gz" }, - "liblzma": { - "version": "master", - "link": "https://mirrors.zhamao.xin/library/liblzma/liblzma.tar.gz", - "link_2": "https://github.com/kobolabs/liblzma/archive/refs/heads/master.zip" - }, "curl": { "version": "7.82.0", "link": "https://mirrors.zhamao.xin/library/curl/curl-{version}.tar.gz", "link_2": "https://curl.haxx.se/download/curl-{version}.tar.gz" + }, + "xz": { + "version": "5.2.5", + "link": "https://mirrors.zhamao.xin/library/xz/xz-{version}.tar.gz", + "link_2": "https://tukaani.org/xz/xz-{version}.tar.gz" + }, + "libzip": { + "version": "1.8.0", + "link": "https://mirrors.zhamao.xin/library/libzip/libzip-{version}.tar.gz", + "link_2": "ttps://libzip.org/download/libzip-{version}.tar.gz" } } diff --git a/docker/extensions.txt b/docker/extensions.txt index ba283dc1..cef3e503 100755 --- a/docker/extensions.txt +++ b/docker/extensions.txt @@ -34,3 +34,4 @@ xml xmlreader xmlwriter zlib +zip \ No newline at end of file diff --git a/docker/fast-compiler.sh b/docker/fast-compiler.sh index 39448786..6acc0c18 100755 --- a/docker/fast-compiler.sh +++ b/docker/fast-compiler.sh @@ -2,8 +2,8 @@ # This script needs alpine linux system. -VER_PHP="7.4.28" -USE_BACKUP="no" +test "$VER_PHP" = "" && VER_PHP="7.4.28" +test "$USE_BACKUP" = "" && USE_BACKUP="no" LINK_APK_REPO='mirrors.ustc.edu.cn' LINK_APK_REPO_BAK='dl-cdn.alpinelinux.org' @@ -18,7 +18,7 @@ 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 +apk add bash file 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 @@ -33,6 +33,8 @@ apk add c-ares-static c-ares-dev apk add libevent libevent-dev libevent-static # php sqlite3 dependencies apk add sqlite sqlite-dev sqlite-libs sqlite-static +# php libzip dependencies +apk add bzip2-dev bzip2-static bzip2 chmod +x download.sh check-extensions.sh compile-php.sh @@ -42,8 +44,9 @@ chmod +x download.sh check-extensions.sh compile-php.sh ./download.sh event ${USE_BACKUP} && \ ./download.sh redis ${USE_BACKUP} && \ ./download.sh libxml2 ${USE_BACKUP} && \ - ./download.sh liblzma ${USE_BACKUP} && \ + ./download.sh xz ${USE_BACKUP} && \ ./download.sh curl ${USE_BACKUP} && \ + ./download.sh libzip ${USE_BACKUP} && \ ./download.sh php ${USE_BACKUP} ${VER_PHP} && \ ./check-extensions.sh check_before_configure && \ ./compile-php.sh ${VER_PHP} diff --git a/docker/multi-version-compiler.sh b/docker/multi-version-compiler.sh index cf74f480..36281ab2 100755 --- a/docker/multi-version-compiler.sh +++ b/docker/multi-version-compiler.sh @@ -1,6 +1,6 @@ #!/bin/sh -USE_BACKUP="no" +test "$USE_BACKUP" = "" && USE_BACKUP="no" LINK_APK_REPO='mirrors.ustc.edu.cn' LINK_APK_REPO_BAK='dl-cdn.alpinelinux.org' @@ -15,7 +15,7 @@ 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 +apk add bash file 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 @@ -30,6 +30,8 @@ apk add c-ares-static c-ares-dev apk add libevent libevent-dev libevent-static # php sqlite3 dependencies apk add sqlite sqlite-dev sqlite-libs sqlite-static +# php libzip dependencies +apk add bzip2-dev bzip2-static bzip2 chmod +x download.sh check-extensions.sh compile-php.sh @@ -39,14 +41,15 @@ chmod +x download.sh check-extensions.sh compile-php.sh ./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 xz ${USE_BACKUP} && \ + ./download.sh curl ${USE_BACKUP} && \ + ./download.sh libzip ${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" +for VER_PHP in "7.2.34" "7.3.33" "7.4.29" "8.0.18" "8.1.5" do ./download.sh swoole ${USE_BACKUP} && \ ./download.sh inotify ${USE_BACKUP} && \ @@ -54,8 +57,9 @@ do ./download.sh event ${USE_BACKUP} && \ ./download.sh redis ${USE_BACKUP} && \ ./download.sh libxml2 ${USE_BACKUP} && \ - ./download.sh liblzma ${USE_BACKUP} && \ + ./download.sh xz ${USE_BACKUP} && \ ./download.sh curl ${USE_BACKUP} && \ + ./download.sh libzip ${USE_BACKUP} && \ ./download.sh php ${USE_BACKUP} ${VER_PHP} && \ ./check-extensions.sh check_before_configure && \ ./compile-php.sh ${VER_PHP} && \