@@ -4,84 +4,90 @@ FROM nginx:${nginx_version} AS build
44SHELL ["/bin/bash" , "-c" ]
55
66RUN set -x \
7- && apt-get update \
8- && apt-get install -y --no-install-suggests \
9- libluajit-5.1-dev libpam0g-dev zlib1g-dev libpcre3-dev libpcre2-dev \
10- libexpat1-dev git curl build-essential lsb-release libxml2 libxslt1.1 libxslt1-dev autoconf libtool libssl-dev \
11- unzip libmaxminddb-dev libbrotli-dev cmake pkg-config libjansson-dev libmsgpack-dev
7+ && apt-get update \
8+ && apt-get install -y --no-install-suggests \
9+ libluajit-5.1-dev libpam0g-dev zlib1g-dev libpcre3-dev libpcre2-dev \
10+ libexpat1-dev git curl build-essential lsb-release libxml2 libxslt1.1 libxslt1-dev autoconf libtool libssl-dev \
11+ unzip libmaxminddb-dev libbrotli-dev cmake pkg-config libjansson-dev libmsgpack-dev
12+
13+ RUN git clone --depth 1 --branch cpp-3.1.0 https://github.com/msgpack/msgpack-c.git /home/msgpack
14+ RUN cd /home/msgpack \
15+ && cmake . \
16+ && make \
17+ && make install
1218
1319RUN git clone --depth 1 --branch v3.2.1 https://github.com/benmcollins/libjwt.git /home/libjwt
1420RUN mkdir -p /home/libjwt/build && \
15- cd /home/libjwt/build && \
16- cmake .. && make && make install
21+ cd /home/libjwt/build && \
22+ cmake .. && make && make install
1723
1824ARG openresty_package_version=1.27.1.1-1~bookworm1
1925RUN set -x \
20- && curl -fsSL https://openresty.org/package/pubkey.gpg | apt-key add - \
21- && echo "deb https://openresty.org/package/$(uname -m | grep -qE 'aarch64|arm64' && echo -n 'arm64/')debian $(lsb_release -sc) openresty" | tee -a /etc/apt/sources.list.d/openresty.list \
22- && apt-get update \
23- && apt-get install -y --no-install-suggests openresty=${openresty_package_version} \
24- && cd /usr/local/openresty \
25- && cp -vr ./luajit/* /usr/local/ \
26- && rm -d /usr/local/share/lua/5.1 \
27- && ln -sf /usr/local/lib/lua/5.1 /usr/local/share/lua/ \
28- && cp -vr ./lualib/* /usr/local/lib/lua/5.1
26+ && curl -fsSL https://openresty.org/package/pubkey.gpg | apt-key add - \
27+ && echo "deb https://openresty.org/package/$(uname -m | grep -qE 'aarch64|arm64' && echo -n 'arm64/')debian $(lsb_release -sc) openresty" | tee -a /etc/apt/sources.list.d/openresty.list \
28+ && apt-get update \
29+ && apt-get install -y --no-install-suggests openresty=${openresty_package_version} \
30+ && cd /usr/local/openresty \
31+ && cp -vr ./luajit/* /usr/local/ \
32+ && rm -d /usr/local/share/lua/5.1 \
33+ && ln -sf /usr/local/lib/lua/5.1 /usr/local/share/lua/ \
34+ && cp -vr ./lualib/* /usr/local/lib/lua/5.1
2935
3036ENV LUAJIT_LIB=/usr/local/lib \
31- LUAJIT_INC=/usr/local/include/luajit-2.1
37+ LUAJIT_INC=/usr/local/include/luajit-2.1
3238
3339ARG modules
3440RUN set -x \
35- && nginx_version=$(echo ${NGINX_VERSION} | sed 's/-.*//g' ) \
36- && curl -fSL "https://nginx.org/download/nginx-${nginx_version}.tar.gz" \
37- | tar -C /usr/local/src -xzvf- \
38- && ln -s /usr/local/src/nginx-${nginx_version} /usr/local/src/nginx \
39- && cd /usr/local/src/nginx \
40- && configure_args=$(nginx -V 2>&1 | grep "configure arguments:" | awk -F 'configure arguments:' '{print $2}' ); \
41- IFS=',' ; \
42- for module in ${modules}; do \
43- module_repo=$(echo $module | sed -E 's@^(((https?|git)://)?[^:]+).*@\1 @g' ); \
44- module_tag=$(echo $module | sed -E 's@^(((https?|git)://)?[^:]+):?([^:/]*)@\4 @g' ); \
45- dirname=$(echo "${module_repo}" | sed -E 's@^.*/|\. .*$@@g' ); \
46- git clone --recursive "${module_repo}" ; \
47- cd ${dirname}; \
48- git fetch --tags; \
49- if [ -n "${module_tag}" ]; then \
50- if [[ "${module_tag}" =~ ^(pr-[0-9]+.*)$ ]]; then \
51- pr_numbers="${BASH_REMATCH[1]//pr-/}" ; \
52- IFS=';' ; \
53- for pr_number in ${pr_numbers}; do \
54- git fetch origin "pull/${pr_number}/head:pr-${pr_number}" ; \
55- git merge --no-commit pr-${pr_number} master; \
56- done; \
57- IFS=',' ; \
58- else \
59- git checkout "${module_tag}" ; \
60- fi; \
61- fi; \
62- cd ..; \
63- configure_args="${configure_args} --add-dynamic-module=./${dirname}" ; \
64- done; unset IFS \
65- && eval ./configure ${configure_args} \
66- && make modules \
67- && cp -v objs/*.so /usr/lib/nginx/modules/
41+ && nginx_version=$(echo ${NGINX_VERSION} | sed 's/-.*//g' ) \
42+ && curl -fSL "https://nginx.org/download/nginx-${nginx_version}.tar.gz" \
43+ | tar -C /usr/local/src -xzvf- \
44+ && ln -s /usr/local/src/nginx-${nginx_version} /usr/local/src/nginx \
45+ && cd /usr/local/src/nginx \
46+ && configure_args=$(nginx -V 2>&1 | grep "configure arguments:" | awk -F 'configure arguments:' '{print $2}' ); \
47+ IFS=',' ; \
48+ for module in ${modules}; do \
49+ module_repo=$(echo $module | sed -E 's@^(((https?|git)://)?[^:]+).*@\1 @g' ); \
50+ module_tag=$(echo $module | sed -E 's@^(((https?|git)://)?[^:]+):?([^:/]*)@\4 @g' ); \
51+ dirname=$(echo "${module_repo}" | sed -E 's@^.*/|\. .*$@@g' ); \
52+ git clone --recursive "${module_repo}" ; \
53+ cd ${dirname}; \
54+ git fetch --tags; \
55+ if [ -n "${module_tag}" ]; then \
56+ if [[ "${module_tag}" =~ ^(pr-[0-9]+.*)$ ]]; then \
57+ pr_numbers="${BASH_REMATCH[1]//pr-/}" ; \
58+ IFS=';' ; \
59+ for pr_number in ${pr_numbers}; do \
60+ git fetch origin "pull/${pr_number}/head:pr-${pr_number}" ; \
61+ git merge --no-commit pr-${pr_number} master; \
62+ done; \
63+ IFS=',' ; \
64+ else \
65+ git checkout "${module_tag}" ; \
66+ fi; \
67+ fi; \
68+ cd ..; \
69+ configure_args="${configure_args} --add-dynamic-module=./${dirname}" ; \
70+ done; unset IFS \
71+ && eval ./configure ${configure_args} \
72+ && make modules \
73+ && cp -v objs/*.so /usr/lib/nginx/modules/
6874
6975ARG luarocks_version=3.12.2
7076RUN set -x \
71- && curl -fSL "https://luarocks.org/releases/luarocks-${luarocks_version}.tar.gz" \
72- | tar -C /usr/local/src -xzvf- \
73- && ln -s /usr/local/src/luarocks-${luarocks_version} /usr/local/src/luarocks \
74- && cd /usr/local/src/luarocks \
75- && ./configure && make && make install
77+ && curl -fSL "https://luarocks.org/releases/luarocks-${luarocks_version}.tar.gz" \
78+ | tar -C /usr/local/src -xzvf- \
79+ && ln -s /usr/local/src/luarocks-${luarocks_version} /usr/local/src/luarocks \
80+ && cd /usr/local/src/luarocks \
81+ && ./configure && make && make install
7682
7783ARG lua_modules
7884RUN set -x \
79- && ln -s /usr/include/$(uname -m)-linux-gnu /usr/include/linux-gnu \
80- && IFS="," ; \
81- for lua_module in ${lua_modules}; do \
82- unset IFS; \
83- luarocks install ${lua_module}; \
84- done
85+ && ln -s /usr/include/$(uname -m)-linux-gnu /usr/include/linux-gnu \
86+ && IFS="," ; \
87+ for lua_module in ${lua_modules}; do \
88+ unset IFS; \
89+ luarocks install ${lua_module}; \
90+ done
8591
8692FROM nginx:${nginx_version}
8793
@@ -95,36 +101,36 @@ COPY --from=build /usr/local/lib/libjwt.so /usr/local/lib/libjwt.so
95101
96102
97103ENV LUAJIT_LIB=/usr/local/lib \
98- LUAJIT_INC=/usr/local/include/luajit-2.1
104+ LUAJIT_INC=/usr/local/include/luajit-2.1
99105
100106RUN set -x \
101- && apt-get update \
102- && apt-get install -y --no-install-suggests \
103- ca-certificates \
104- curl \
105- dnsutils \
106- iputils-ping \
107- libcurl4-openssl-dev \
108- libyajl-dev \
109- libxml2 \
110- lua5.1-dev \
111- net-tools \
112- procps \
113- tcpdump \
114- rsync \
115- unzip \
116- vim-tiny \
117- libmaxminddb0 \
118- libbrotli1 \
119- && apt-get clean \
120- && rm -rf /var/lib/apt/lists/* \
121- && ldconfig -v \
122- && ls /etc/nginx/modules/*.so | grep -v debug \
123- | xargs -I{} sh -c 'echo "load_module {};" | tee -a /etc/nginx/modules/all.conf' \
124- && sed -i -E 's|listen\s +80|&80|g' /etc/nginx/conf.d/default.conf \
125- && touch /var/run/nginx.pid \
126- && mkdir -p /var/cache/nginx \
127- && chown -R nginx:nginx /etc/nginx /var/log/nginx /var/cache/nginx /var/run/nginx.pid
107+ && apt-get update \
108+ && apt-get install -y --no-install-suggests \
109+ ca-certificates \
110+ curl \
111+ dnsutils \
112+ iputils-ping \
113+ libcurl4-openssl-dev \
114+ libyajl-dev \
115+ libxml2 \
116+ lua5.1-dev \
117+ net-tools \
118+ procps \
119+ tcpdump \
120+ rsync \
121+ unzip \
122+ vim-tiny \
123+ libmaxminddb0 \
124+ libbrotli1 \
125+ && apt-get clean \
126+ && rm -rf /var/lib/apt/lists/* \
127+ && ldconfig -v \
128+ && ls /etc/nginx/modules/*.so | grep -v debug \
129+ | xargs -I{} sh -c 'echo "load_module {};" | tee -a /etc/nginx/modules/all.conf' \
130+ && sed -i -E 's|listen\s +80|&80|g' /etc/nginx/conf.d/default.conf \
131+ && touch /var/run/nginx.pid \
132+ && mkdir -p /var/cache/nginx \
133+ && chown -R nginx:nginx /etc/nginx /var/log/nginx /var/cache/nginx /var/run/nginx.pid
128134
129135EXPOSE 8080 8443
130136
0 commit comments