@@ -2,6 +2,14 @@ ARG NGINX_VERSION=1.19.2
22
33# https://github.com/google/ngx_brotli
44ARG NGX_BROTLI_COMMIT=25f86f0bac1101b6512135eac5f93c49c63609e3
5+
6+ # https://github.com/vision5/ngx_devel_kit/releases
7+ # https://hub.docker.com/r/firesh/nginx-lua/dockerfile
8+ ARG NGX_DEVEL_KIT_VERSION=0.3.1
9+
10+ # https://github.com/openresty/luajit2/releases
11+ ARG LUA_NGINX_MODULE_VERSION=0.10.14
12+
513ARG CONFIG="\
614 --prefix=/etc/nginx \
715 --sbin-path=/usr/sbin/nginx \
@@ -47,6 +55,9 @@ ARG CONFIG="\
4755 --with-file-aio \
4856 --with-http_v2_module \
4957 --add-module=/usr/src/ngx_brotli \
58+ --with-ld-opt=" -Wl,-rpath,/usr/lib" \
59+ --add-module=/tmp/ngx_devel_kit-${NGX_DEVEL_KIT_VERSION} \
60+ --add-module=/tmp/lua-nginx-module-${LUA_NGINX_MODULE_VERSION} \
5061 "
5162
5263FROM alpine:3.12
@@ -55,6 +66,8 @@ LABEL maintainer="NGINX Docker Maintainers <docker-maint@nginx.com>"
5566ARG NGINX_VERSION
5667ARG NGX_BROTLI_COMMIT
5768ARG CONFIG
69+ ARG NGX_DEVEL_KIT_VERSION
70+ ARG LUA_NGINX_MODULE_VERSION
5871
5972RUN \
6073 apk add --no-cache --virtual .build-deps \
7083 libxslt-dev \
7184 gd-dev \
7285 geoip-dev \
86+ luajit \
87+ luajit-dev \
7388 && apk add --no-cache --virtual .brotli-build-deps \
7489 autoconf \
7590 libtool \
8196COPY nginx.pub /tmp/nginx.pub
8297
8398RUN \
84- echo "Compiling nginx $NGINX_VERSION with brotli $NGX_BROTLI_COMMIT" \
85- && mkdir -p /usr/src/ngx_brotli \
99+ echo "Fetcing lua-nginx-module $LUA_NGINX_MODULE_VERSION and nginx devel kit $NGX_DEVEL_KIT_VERSION ..." \
100+ && curl -fSL https://github.com/simpl/ngx_devel_kit/archive/v${NGX_DEVEL_KIT_VERSION}.tar.gz -o /tmp/ndk.tar.gz \
101+ && tar -xvf /tmp/ndk.tar.gz -C /tmp \
102+ && curl -fSL https://github.com/openresty/lua-nginx-module/archive/v${LUA_NGINX_MODULE_VERSION}.tar.gz -o /tmp/lua-nginx.tar.gz \
103+ && tar -xvf /tmp/lua-nginx.tar.gz -C /tmp
104+
105+ RUN \
106+ mkdir -p /usr/src/ngx_brotli \
86107 && cd /usr/src/ngx_brotli \
87108 && git init \
88109 && git remote add origin https://github.com/google/ngx_brotli.git \
@@ -100,7 +121,10 @@ RUN \
100121 && tar -zxC /usr/src -f nginx.tar.gz
101122
102123RUN \
103- cd /usr/src/nginx-$NGINX_VERSION \
124+ export LUAJIT_LIB=/usr/lib \
125+ && export LUAJIT_INC=/usr/include/luajit-2.1 \
126+ && echo "Compiling nginx $NGINX_VERSION with brotli $NGX_BROTLI_COMMIT and lua nginx module v$LUA_NGINX_MODULE_VERSION ..." \
127+ && cd /usr/src/nginx-$NGINX_VERSION \
104128 && ./configure $CONFIG --with-debug \
105129 && make -j$(getconf _NPROCESSORS_ONLN) \
106130 && mv objs/nginx objs/nginx-debug \
@@ -145,6 +169,8 @@ RUN \
145169
146170FROM alpine:3.12
147171ARG NGINX_VERSION
172+ ARG NGX_BROTLI_COMMIT
173+ ARG LUA_NGINX_MODULE_VERSION
148174
149175COPY --from=0 /tmp/runDeps.txt /tmp/runDeps.txt
150176COPY --from=0 /etc/nginx /etc/nginx
@@ -168,6 +194,10 @@ RUN \
168194COPY nginx.conf /etc/nginx/nginx.conf
169195COPY ssl_common.conf /etc/nginx/conf.d/ssl_common.conf
170196
197+ ENV NGINX_VERSION $NGINX_VERSION
198+ ENV NGX_BROTLI_COMMIT $NGX_BROTLI_COMMIT
199+ ENV LUA_NGINX_MODULE_VERSION $LUA_NGINX_MODULE_VERSION
200+
171201EXPOSE 80 443
172202
173203STOPSIGNAL SIGTERM
0 commit comments