33 lines
1.4 KiB
Docker
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"]
|