Files
smpp-js/interop-tests/peers/smppload/Dockerfile
T

33 lines
1.4 KiB
Docker

# smppload has no published image; built from source at a pinned commit (tag 2.5.3). Its deps
# resolve some sub-deps over git:// (rebar.config), rewritten to https below - see findings/07-load.md.
FROM --platform=linux/amd64 erlang:27.3.4.17-alpine AS builder
RUN apk add --no-cache curl git make build-base ca-certificates \
&& git config --global url."https://github.com/".insteadOf "git://github.com/"
ARG SMPPLOAD_COMMIT=49fb653966081052fa5d36fbadbdb0972f25ded5
ARG REBAR3_VERSION=3.27.0
# The commit's own vendored ./rebar3 escript predates OTP 27 and cannot even load under it
# ("please re-compile this module with an Erlang/OTP 27 compiler") - issue #8's BEAM load error.
# A current rebar3 release, which still reads this project's rebar.config, replaces it.
RUN curl -fsSL -o /usr/local/bin/rebar3 "https://github.com/erlang/rebar3/releases/download/${REBAR3_VERSION}/rebar3" \
&& chmod +x /usr/local/bin/rebar3
RUN git clone https://github.com/PowerMeMobile/smppload.git /build \
&& cd /build \
&& git checkout "${SMPPLOAD_COMMIT}" \
&& cp /usr/local/bin/rebar3 ./rebar3 \
&& make escriptize
FROM --platform=linux/amd64 erlang:27.3.4.17-alpine AS runtime
RUN apk add --no-cache netcat-openbsd
WORKDIR /app
COPY --from=builder /build/_build/default/bin/smppload /app/smppload
COPY entrypoint.sh /app/entrypoint.sh
RUN chmod +x /app/entrypoint.sh /app/smppload
ENTRYPOINT ["/app/entrypoint.sh"]