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

38 lines
1.5 KiB
Docker

# smpp-dumb-client has no published image; built from source at a pinned commit. A second binary
# is built from the same source with its own automatic enquire_link neutralised, for S6 - see
# findings/07-load.md for why (every peer built for this phase sends enquire_link on its own
# otherwise, and smppload, the one that never does, is blocked).
FROM --platform=linux/amd64 golang:1.26.8-alpine3.23 AS builder
RUN apk add --no-cache git ca-certificates
ARG LIBSMPP_COMMIT=de0334bf2c1155fb3dd4f929674968254c932be6
RUN git clone https://github.com/vponomarev/libsmpp.git /build \
&& cd /build \
&& git checkout "${LIBSMPP_COMMIT}"
WORKDIR /build
RUN go build -o /out/smpp-dumb-client ./app/smpp-dumb-client
# libsmpp's enquireSender(60)/enquireSender(10) are the two call sites that start its unconditional,
# unconfigurable 10s/60s enquire_link ticker (smpp.go) - both neutralised here for the no-ping build.
RUN sed -i \
-e 's/go s\.enquireSender(60)/\/\/ patched for S6 (no enquire_link): &/' \
-e 's/go s\.enquireSender(10)/\/\/ patched for S6 (no enquire_link): &/' \
smpp.go \
&& go build -o /out/smpp-dumb-client-noping ./app/smpp-dumb-client
FROM --platform=linux/amd64 alpine:3.23.5 AS runtime
RUN apk add --no-cache netcat-openbsd
WORKDIR /app
COPY --from=builder /out/smpp-dumb-client /app/smpp-dumb-client
COPY --from=builder /out/smpp-dumb-client-noping /app/smpp-dumb-client-noping
COPY entrypoint.sh /app/entrypoint.sh
COPY conf ./conf
RUN chmod +x /app/entrypoint.sh /app/smpp-dumb-client /app/smpp-dumb-client-noping
ENTRYPOINT ["/app/entrypoint.sh"]