Skip to content

Commit 441edf1

Browse files
committed
chore: install msgpack-c 3.1.0 manually
1 parent 73c1cc5 commit 441edf1

File tree

1 file changed

+95
-89
lines changed

1 file changed

+95
-89
lines changed

Dockerfile

Lines changed: 95 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -4,84 +4,90 @@ FROM nginx:${nginx_version} AS build
44
SHELL ["/bin/bash", "-c"]
55

66
RUN 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

1319
RUN git clone --depth 1 --branch v3.2.1 https://github.com/benmcollins/libjwt.git /home/libjwt
1420
RUN 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

1824
ARG openresty_package_version=1.27.1.1-1~bookworm1
1925
RUN 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

3036
ENV LUAJIT_LIB=/usr/local/lib \
31-
LUAJIT_INC=/usr/local/include/luajit-2.1
37+
LUAJIT_INC=/usr/local/include/luajit-2.1
3238

3339
ARG modules
3440
RUN 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

6975
ARG luarocks_version=3.12.2
7076
RUN 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

7783
ARG lua_modules
7884
RUN 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

8692
FROM nginx:${nginx_version}
8793

@@ -95,36 +101,36 @@ COPY --from=build /usr/local/lib/libjwt.so /usr/local/lib/libjwt.so
95101

96102

97103
ENV LUAJIT_LIB=/usr/local/lib \
98-
LUAJIT_INC=/usr/local/include/luajit-2.1
104+
LUAJIT_INC=/usr/local/include/luajit-2.1
99105

100106
RUN 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

129135
EXPOSE 8080 8443
130136

0 commit comments

Comments
 (0)