Sign inSign up

programmingboy/ngnix-brotli

By programmingboy

•Updated over 2 years ago

The ngnix that support Brolti compression

Image
0

165

programmingboy/ngnix-brotli repository overview

FROM nginx:alpine AS ngx_brotli_build

ENV NGX_MODULE_COMMIT 9aec15e2aa6feea2113119ba06460af70ab3ea62 ENV NGX_MODULE_PATH ngx_brotli

RUN wget "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz⁠" -O nginx.tar.gz &&
wget "https://github.com/google/ngx_brotli/archive/${NGX_MODULE_COMMIT}.tar.gz⁠" -O ${NGX_MODULE_PATH}.tar.gz

⁠For latest build deps, see https://github.com/nginxinc/docker-nginx/blob/master/mainline/alpine/Dockerfile⁠

RUN apk add --no-cache --virtual .build-deps gcc libc-dev make openssl-dev pcre-dev zlib-dev linux-headers libxslt-dev gd-dev geoip-dev perl-dev libedit-dev mercurial bash alpine-sdk findutils brotli-dev

⁠Reuse same cli arguments as the nginx:alpine image used to build

RUN CONFARGS=$(nginx -V 2>&1 | sed -n -e 's/^.*arguments: //p')
tar -zxf nginx.tar.gz &&
tar -xzf "${NGX_MODULE_PATH}.tar.gz" &&
cd nginx-$NGINX_VERSION &&
./configure --with-compat $CONFARGS --add-dynamic-module="$(pwd)/../${NGX_MODULE_PATH}-${NGX_MODULE_COMMIT}" &&
make && make install

⁠save /usr/lib/*so deps

RUN mkdir /so-deps && cp -L $(ldd /usr/local/nginx/modules/ngx_http_brotli_filter_module.so 2>/dev/null | grep '/usr/lib/' | awk '{ print $3 }' | tr '\n' ' ') /so-deps

⁠prepend load_module commands to main nginx.conf

RUN echo "load_module /usr/local/nginx/modules/ngx_http_brotli_filter_module.so;" | cat - /etc/nginx/nginx.conf > /tmp/out && mv /tmp/out /etc/nginx/nginx.conf RUN echo "load_module /usr/local/nginx/modules/ngx_http_brotli_static_module.so;" | cat - /etc/nginx/nginx.conf > /tmp/out && mv /tmp/out /etc/nginx/nginx.conf

FROM nginx:alpine

COPY --from=ngx_brotli_build /so-deps /usr/lib COPY --from=ngx_brotli_build /etc/nginx/nginx.conf /etc/nginx/nginx.conf COPY --from=ngx_brotli_build /usr/local/nginx/modules/ngx_http_brotli_filter_module.so /usr/local/nginx/modules/ngx_http_brotli_filter_module.so COPY --from=ngx_brotli_build /usr/local/nginx/modules/ngx_http_brotli_static_module.so /usr/local/nginx/modules/ngx_http_brotli_static_module.so

Tag summary

Content type

Image

Digest

sha256:8b708ccba…

Size

17.5 MB

Last updated

over 2 years ago

docker pull programmingboy/ngnix-brotli