25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-20 16:15:59 +01:00

Dockerfile: Reorder stages and steps for consistency

Also avoid duplicated lines.
This commit is contained in:
sando38 2023-04-25 09:33:45 +02:00 committed by Badlop
parent 8f05af7810
commit 6155b001b4

View File

@ -128,38 +128,37 @@ RUN home_root_dir=$(echo $HOME | sed 's|\(.*\)/.*|\1 |') \
> usr/local/bin/ejabberdctl \ > usr/local/bin/ejabberdctl \
&& chmod +x usr/local/bin/* \ && chmod +x usr/local/bin/* \
&& scanelf --needed --nobanner --format '%n#p' --recursive $home_root_dir \ && scanelf --needed --nobanner --format '%n#p' --recursive $home_root_dir \
| tr ',' '\n' | sort -u | awk 'system("[ -e $home_root_dir" $1 " ]") == 0 { next } \ | tr ',' '\n' \
{ print "so:" $1 }' > /tmp/runDeps | sort -u \
| awk 'system("[ -e $home_root_dir" $1 " ]") == 0 { next } { print "so:" $1 }' \
| sed -e "s|so:libc.so|so:libc.musl-$(uname -m).so.1|" \
> /tmp/runDeps
ARG UID ARG UID
RUN chown -R $UID:$UID $HOME RUN chown -R $UID:$UID $HOME
################################################################################ ################################################################################
#' METHOD='package' - install runtime dependencies #' METHOD='direct' - Remove erlang/OTP & rebar3
FROM docker.io/alpine:${ALPINE_VSN} AS runtime-package
RUN apk -U upgrade --available --no-cache \
&& apk add --no-cache \
so:libcap.so.2 \
tini
################################################################################
#' METHOD='direct' - install runtime dependencies, remove erlang/OTP & rebar3
FROM docker.io/erlang:${OTP_VSN}-alpine AS runtime-direct FROM docker.io/erlang:${OTP_VSN}-alpine AS runtime-direct
COPY --from=ejabberd /tmp/runDeps /tmp/runDeps
RUN apk -U upgrade --available --no-cache \
&& apk add --no-cache \
so:libcap.so.2 \
tini \
$(cat /tmp/runDeps)
RUN apk del .erlang-rundeps \ RUN apk del .erlang-rundeps \
&& rm -f $(which rebar3) \ && rm -f $(which rebar3) \
&& find /usr -type d -name 'erlang' -exec rm -rf {} + \ && find /usr -type d -name 'erlang' -exec rm -rf {} + \
&& find /usr -type l -exec test ! -e {} \; -delete && find /usr -type l -exec test ! -e {} \; -delete
################################################################################ ################################################################################
#' Finalize runtime environment #' METHOD='package' - define runtime base image
FROM docker.io/alpine:${ALPINE_VSN} AS runtime-package
################################################################################
#' Update alpine, finalize runtime environment
FROM runtime-${METHOD} AS runtime FROM runtime-${METHOD} AS runtime
COPY --from=ejabberd /tmp/runDeps /tmp/runDeps
RUN apk -U upgrade --available --no-cache \
&& apk add --no-cache \
$(cat /tmp/runDeps) \
so:libcap.so.2 \
tini
ARG USER ARG USER
ARG UID ARG UID
ARG HOME ARG HOME