From 3c0a1361dfc38a60c5f32b1c7454c36af7a1c808 Mon Sep 17 00:00:00 2001 From: Silent Date: Mon, 15 Jan 2024 15:01:05 +0530 Subject: [PATCH 1/4] install brotli for debian --- debian-dev/Dockerfile | 4 ++++ debian-dev/Dockerfile.local | 4 ++++ debian-dev/install-brotli.sh | 23 +++++++++++++++++++++++ debian/Dockerfile | 4 ++++ debian/install-brotli.sh | 23 +++++++++++++++++++++++ 5 files changed, 58 insertions(+) create mode 100644 debian-dev/install-brotli.sh create mode 100644 debian/install-brotli.sh diff --git a/debian-dev/Dockerfile b/debian-dev/Dockerfile index a5c810cc..0a53643f 100644 --- a/debian-dev/Dockerfile +++ b/debian-dev/Dockerfile @@ -53,6 +53,10 @@ RUN apt-get -y update --fix-missing \ libldap2-dev \ && apt-get remove --purge --auto-remove -y +COPY install-brotli.sh /install-brotli.sh +RUN chmod +x /install-brotli.sh \ + && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh + WORKDIR /usr/local/apisix ENV PATH=$PATH:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin diff --git a/debian-dev/Dockerfile.local b/debian-dev/Dockerfile.local index ac5b105f..c44511b5 100644 --- a/debian-dev/Dockerfile.local +++ b/debian-dev/Dockerfile.local @@ -49,6 +49,10 @@ COPY --from=build /usr/local/apisix /usr/local/apisix COPY --from=build /usr/local/openresty /usr/local/openresty COPY --from=build /usr/bin/apisix /usr/bin/apisix +COPY install-brotli.sh /install-brotli.sh +RUN chmod +x /install-brotli.sh \ + && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh + ENV PATH=$PATH:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin WORKDIR /usr/local/apisix diff --git a/debian-dev/install-brotli.sh b/debian-dev/install-brotli.sh new file mode 100644 index 00000000..5bd2be67 --- /dev/null +++ b/debian-dev/install-brotli.sh @@ -0,0 +1,23 @@ +install_brotli () { + apt-get install -y sudo cmake wget unzip + local BORTLI_VERSION="1.1.0" + wget -q https://github.com/google/brotli/archive/refs/tags/v${BORTLI_VERSION}.zip || exit -1 + unzip v${BORTLI_VERSION}.zip && cd ./brotli-${BORTLI_VERSION} && mkdir build && cd build || exit -1 + local CMAKE=$(command -v cmake3 > /dev/null 2>&1 && echo cmake3 || echo cmake) || exit -1 + ${CMAKE} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/brotli .. || exit -1 + sudo ${CMAKE} --build . --config Release --target install || exit -1 + if [ -d "/usr/local/brotli/lib64" ]; then + echo /usr/local/brotli/lib64 | sudo tee /etc/ld.so.conf.d/brotli.conf + else + echo /usr/local/brotli/lib | sudo tee /etc/ld.so.conf.d/brotli.conf + fi + sudo ldconfig || exit -1 + ln -sf /usr/local/brotli/bin/brotli /usr/bin/brotli + cd ../.. + rm -rf brotli-${BORTLI_VERSION} + rm -rf /v${BORTLI_VERSION}.zip + export SUDO_FORCE_REMOVE=yes + apt purge -qy cmake sudo wget unzip + apt-get remove --purge --auto-remove -y +} +install_brotli \ No newline at end of file diff --git a/debian/Dockerfile b/debian/Dockerfile index a0424385..8416c12e 100644 --- a/debian/Dockerfile +++ b/debian/Dockerfile @@ -41,6 +41,10 @@ RUN set -ex; \ && openresty -V \ && apisix version +COPY install-brotli.sh /install-brotli.sh +RUN chmod +x /install-brotli.sh \ + && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh + RUN apt-get -y purge --auto-remove curl wget gnupg --allow-remove-essential WORKDIR /usr/local/apisix diff --git a/debian/install-brotli.sh b/debian/install-brotli.sh new file mode 100644 index 00000000..5bd2be67 --- /dev/null +++ b/debian/install-brotli.sh @@ -0,0 +1,23 @@ +install_brotli () { + apt-get install -y sudo cmake wget unzip + local BORTLI_VERSION="1.1.0" + wget -q https://github.com/google/brotli/archive/refs/tags/v${BORTLI_VERSION}.zip || exit -1 + unzip v${BORTLI_VERSION}.zip && cd ./brotli-${BORTLI_VERSION} && mkdir build && cd build || exit -1 + local CMAKE=$(command -v cmake3 > /dev/null 2>&1 && echo cmake3 || echo cmake) || exit -1 + ${CMAKE} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/brotli .. || exit -1 + sudo ${CMAKE} --build . --config Release --target install || exit -1 + if [ -d "/usr/local/brotli/lib64" ]; then + echo /usr/local/brotli/lib64 | sudo tee /etc/ld.so.conf.d/brotli.conf + else + echo /usr/local/brotli/lib | sudo tee /etc/ld.so.conf.d/brotli.conf + fi + sudo ldconfig || exit -1 + ln -sf /usr/local/brotli/bin/brotli /usr/bin/brotli + cd ../.. + rm -rf brotli-${BORTLI_VERSION} + rm -rf /v${BORTLI_VERSION}.zip + export SUDO_FORCE_REMOVE=yes + apt purge -qy cmake sudo wget unzip + apt-get remove --purge --auto-remove -y +} +install_brotli \ No newline at end of file From 71fe56174ecd3f4e36aa3c1bb5370cc9bee53efc Mon Sep 17 00:00:00 2001 From: Silent Date: Tue, 16 Jan 2024 00:02:14 +0530 Subject: [PATCH 2/4] CI changes --- Makefile | 1 + debian-dev/Dockerfile | 2 +- debian-dev/Dockerfile.local | 3 ++- debian/Dockerfile | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 4cccf88f..ff237545 100644 --- a/Makefile +++ b/Makefile @@ -67,6 +67,7 @@ define build_image_dev $(ENV_DOCKER) build -t $(ENV_APISIX_IMAGE_TAG_NAME)-debian-dev \ --build-arg CODE_PATH=$(1) \ --build-arg ENTRYPOINT_PATH=debian-dev/docker-entrypoint.sh \ + --build-arg INSTALL_BROTLI=debian-dev/install-brotli.sh \ -f ./debian-dev/Dockerfile.local . endef diff --git a/debian-dev/Dockerfile b/debian-dev/Dockerfile index 0a53643f..5cd9c3f5 100644 --- a/debian-dev/Dockerfile +++ b/debian-dev/Dockerfile @@ -53,7 +53,7 @@ RUN apt-get -y update --fix-missing \ libldap2-dev \ && apt-get remove --purge --auto-remove -y -COPY install-brotli.sh /install-brotli.sh +COPY ./install-brotli.sh /install-brotli.sh RUN chmod +x /install-brotli.sh \ && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh diff --git a/debian-dev/Dockerfile.local b/debian-dev/Dockerfile.local index c44511b5..f3ba829c 100644 --- a/debian-dev/Dockerfile.local +++ b/debian-dev/Dockerfile.local @@ -44,12 +44,13 @@ RUN set -x \ FROM debian:bullseye-slim ARG ENTRYPOINT_PATH=./docker-entrypoint.sh +ARG INSTALL_BROTLI=./install-brotli.sh COPY --from=build /usr/local/apisix /usr/local/apisix COPY --from=build /usr/local/openresty /usr/local/openresty COPY --from=build /usr/bin/apisix /usr/bin/apisix -COPY install-brotli.sh /install-brotli.sh +COPY ${INSTALL_BROTLI} /install-brotli.sh RUN chmod +x /install-brotli.sh \ && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh diff --git a/debian/Dockerfile b/debian/Dockerfile index 8416c12e..818e28a1 100644 --- a/debian/Dockerfile +++ b/debian/Dockerfile @@ -41,7 +41,7 @@ RUN set -ex; \ && openresty -V \ && apisix version -COPY install-brotli.sh /install-brotli.sh +COPY ./install-brotli.sh /install-brotli.sh RUN chmod +x /install-brotli.sh \ && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh From fbf4b7e54c193c401fd6abd7a503a28f424c3a1b Mon Sep 17 00:00:00 2001 From: Silent Date: Tue, 16 Jan 2024 00:12:11 +0530 Subject: [PATCH 3/4] update needed in multi-stage container bulid --- debian-dev/install-brotli.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/debian-dev/install-brotli.sh b/debian-dev/install-brotli.sh index 5bd2be67..989aee18 100644 --- a/debian-dev/install-brotli.sh +++ b/debian-dev/install-brotli.sh @@ -1,4 +1,5 @@ install_brotli () { + apt-get -qy update apt-get install -y sudo cmake wget unzip local BORTLI_VERSION="1.1.0" wget -q https://github.com/google/brotli/archive/refs/tags/v${BORTLI_VERSION}.zip || exit -1 From 260d587f5e73c08de7781d10ee93dad9671ffb07 Mon Sep 17 00:00:00 2001 From: Silent Date: Tue, 16 Jan 2024 01:02:40 +0530 Subject: [PATCH 4/4] brotli for redhat --- redhat/Dockerfile | 4 ++++ redhat/install-brotli.sh | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 redhat/install-brotli.sh diff --git a/redhat/Dockerfile b/redhat/Dockerfile index 1a1a1ecb..e4a5bace 100644 --- a/redhat/Dockerfile +++ b/redhat/Dockerfile @@ -27,6 +27,10 @@ RUN yum update -y \ && yum clean all \ && sed -i 's/PASS_MAX_DAYS\t99999/PASS_MAX_DAYS\t60/g' /etc/login.defs +COPY ./install-brotli.sh /install-brotli.sh +RUN chmod +x /install-brotli.sh \ + && cd / && ./install-brotli.sh && rm -rf /install-brotli.sh + WORKDIR /usr/local/apisix ENV PATH=$PATH:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin diff --git a/redhat/install-brotli.sh b/redhat/install-brotli.sh new file mode 100644 index 00000000..24cc30a7 --- /dev/null +++ b/redhat/install-brotli.sh @@ -0,0 +1,24 @@ +install_brotli () { + yum install -y sudo cmake3 wget unzip gcc + export PATH=$PATH:/usr/local/bin + local BORTLI_VERSION="1.1.0" + wget -q https://github.com/google/brotli/archive/refs/tags/v${BORTLI_VERSION}.zip || exit -1 + unzip v${BORTLI_VERSION}.zip && cd ./brotli-${BORTLI_VERSION} && mkdir build && cd build || exit -1 + local CMAKE=$(command -v cmake3 > /dev/null 2>&1 && echo cmake3 || echo cmake) || exit -1 + ${CMAKE} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/brotli .. || exit -1 + sudo ${CMAKE} --build . --config Release --target install || exit -1 + if [ -d "/usr/local/brotli/lib64" ]; then + echo /usr/local/brotli/lib64 | sudo tee /etc/ld.so.conf.d/brotli.conf + else + echo /usr/local/brotli/lib | sudo tee /etc/ld.so.conf.d/brotli.conf + fi + sudo ldconfig || exit -1 + ln -sf /usr/local/brotli/bin/brotli /usr/bin/brotli + cd ../.. + rm -rf brotli-${BORTLI_VERSION} + rm -rf /v${BORTLI_VERSION}.zip + yum remove -y cmake3 wget unzip gcc + rm -rf /usr/bin/sudo + yum clean all -y +} +install_brotli \ No newline at end of file