Compare commits

...

1 Commits

Author SHA1 Message Date
Ivan Dyachkov 3a90d0b83c build(docker): optimize docker image layers
use COPY --chown instead of chown in Dockerfile to reduce the number of layers
2024-03-18 13:57:45 +01:00
1 changed files with 11 additions and 12 deletions

View File

@ -26,6 +26,7 @@ WORKDIR /emqx/
RUN mkdir -p /emqx-rel/emqx && \ RUN mkdir -p /emqx-rel/emqx && \
if [ -f "/${PROFILE}.tar.gz" ]; then \ if [ -f "/${PROFILE}.tar.gz" ]; then \
tar zxf "/${PROFILE}.tar.gz" -C /emqx-rel/emqx; \ tar zxf "/${PROFILE}.tar.gz" -C /emqx-rel/emqx; \
find /emqx-rel/emqx -name 'swagger*.js.map' -exec rm {} +; \
else \ else \
if [ -f rebar-git-cache.tar ]; then \ if [ -f rebar-git-cache.tar ]; then \
mkdir .cache && \ mkdir .cache && \
@ -37,6 +38,7 @@ RUN mkdir -p /emqx-rel/emqx && \
git config --global --add safe.directory '*' && \ git config --global --add safe.directory '*' && \
make ${PROFILE}-tgz && \ make ${PROFILE}-tgz && \
tar zxf _packages/${PROFILE}/*.tar.gz -C /emqx-rel/emqx; \ tar zxf _packages/${PROFILE}/*.tar.gz -C /emqx-rel/emqx; \
find /emqx-rel/emqx -name 'swagger*.js.map' -exec rm {} +; \
fi fi
FROM $RUN_FROM FROM $RUN_FROM
@ -46,22 +48,19 @@ ARG EXTRA_DEPS=''
ENV LC_ALL=C.UTF-8 ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8 ENV LANG=C.UTF-8
COPY deploy/docker/docker-entrypoint.sh /usr/bin/
COPY --from=builder /emqx-rel /opt/
WORKDIR /opt/emqx
RUN set -eu; \ RUN set -eu; \
apt-get update; \ apt-get update; \
apt-get install -y --no-install-recommends ca-certificates procps $(echo "${EXTRA_DEPS}" | tr ',' ' '); \ apt-get install -y --no-install-recommends ca-certificates procps $(echo "${EXTRA_DEPS}" | tr ',' ' '); \
find /opt/emqx -name 'swagger*.js.map' -exec rm {} +; \ rm -rf /var/lib/apt/lists/*; \
groupadd -r -g 1000 emqx; \ groupadd -r -g 1000 emqx; \
useradd -r -m -u 1000 -g emqx emqx; \ useradd -r -m -u 1000 -g emqx emqx
chgrp -Rf emqx /opt/emqx; \
chmod -Rf g+w /opt/emqx; \ COPY deploy/docker/docker-entrypoint.sh /usr/bin/
chown -Rf emqx /opt/emqx; \ COPY --from=builder --chown=emqx:emqx /emqx-rel /opt/
ln -s /opt/emqx/bin/* /usr/local/bin/; \
rm -rf /var/lib/apt/lists/* RUN ln -s /opt/emqx/bin/* /usr/local/bin/
WORKDIR /opt/emqx
USER emqx USER emqx