1414# See the License for the specific language governing permissions and
1515# limitations under the License.
1616#
17-
18- # Use this dockerfile to create a docker image of your apisix local/patched codebase
19-
2017FROM debian:bullseye-slim AS build
2118
2219ARG ENABLE_PROXY=false
2320ARG CODE_PATH
2421
25- ENV DEBIAN_FRONTEND noninteractive
26- ENV ENV_INST_LUADIR /usr/local/apisix
27-
28- COPY ${CODE_PATH} /apisix
22+ ENV DEBIAN_FRONTEND=noninteractive
23+ ENV ENV_INST_LUADIR=/usr/local/apisix
2924
3025WORKDIR /apisix
3126
27+ ARG INSTALL_BROTLI=./install-brotli.sh
28+
3229RUN set -x \
3330 && apt-get -y update --fix-missing \
3431 && apt-get install -y \
3532 make \
3633 git \
3734 sudo \
3835 libyaml-dev \
39- && ls -al \
40- && make deps \
36+ cmake \
37+ wget \
38+ unzip
39+
40+ COPY ${CODE_PATH}/Makefile ${CODE_PATH}/apisix-master-0.rockspec ${CODE_PATH}/.requirements /apisix/
41+ COPY ${CODE_PATH}/utils/install-dependencies.sh /apisix/utils/
42+
43+ RUN make deps \
4144 && mkdir -p ${ENV_INST_LUADIR} \
42- && cp -r deps ${ENV_INST_LUADIR} \
43- && make install
45+ && cp -r deps ${ENV_INST_LUADIR}
46+
47+ COPY ${INSTALL_BROTLI} /install-brotli.sh
48+ RUN chmod +x /install-brotli.sh && /install-brotli.sh
49+
50+ COPY ${CODE_PATH} /apisix
51+
52+ RUN make install
4453
4554FROM debian:bullseye-slim
4655
4756ARG ENTRYPOINT_PATH=./docker-entrypoint.sh
48- ARG INSTALL_BROTLI=./install-brotli.sh
57+ ARG CHECK_STANDALONE_CONFIG=./check_standalone_config.sh
58+
59+ # Install the runtime libyaml package
60+ RUN apt-get -y update --fix-missing \
61+ && apt-get install -y libldap2-dev libyaml-0-2 \
62+ && apt-get remove --purge --auto-remove -y \
63+ && mkdir -p /usr/local/apisix/ui
4964
5065COPY --from=build /usr/local/apisix /usr/local/apisix
5166COPY --from=build /usr/local/openresty /usr/local/openresty
5267COPY --from=build /usr/bin/apisix /usr/bin/apisix
53- COPY --from=build /usr/lib/x86_64-linux-gnu/libyaml* /usr/local/lib/
68+ COPY --from=build /usr/local/brotli /usr/local/brotli
69+ COPY --chown=nobody:root ui/ /usr/local/apisix/ui/
5470
55- COPY ${INSTALL_BROTLI} /install- brotli.sh
56- RUN chmod +x /install-brotli.sh \
57- && cd / && ./install- brotli.sh && rm -rf /install- brotli.sh
71+ RUN echo /usr/local/ brotli/lib | tee /etc/ld.so.conf.d/brotli.conf \
72+ && ldconfig \
73+ && ln -sf /usr/local/ brotli/bin/brotli /usr/bin/ brotli
5874
5975ENV PATH=$PATH:/usr/local/openresty/luajit/bin:/usr/local/openresty/nginx/sbin:/usr/local/openresty/bin
6076
@@ -66,7 +82,8 @@ RUN ln -sf /dev/stdout /usr/local/apisix/logs/access.log \
6682EXPOSE 9080 9443
6783
6884COPY ${ENTRYPOINT_PATH} /docker-entrypoint.sh
69- COPY ../utils/check_standalone_config.sh /check_standalone_config.sh
85+ COPY ${CHECK_STANDALONE_CONFIG} /check_standalone_config.sh
86+ RUN chmod +x /docker-entrypoint.sh /check_standalone_config.sh
7087
7188ENTRYPOINT ["/docker-entrypoint.sh"]
7289
0 commit comments