fix: add C NIF compilation to k8s Dockerfile

Match the root Dockerfile changes:
- Add libsnmp-dev build dependency
- Add libsnmp40 runtime dependency
- Copy c_src and compile C NIF before Elixir compilation
- Add TERM=dumb for cross-architecture builds
This commit is contained in:
Graham McIntire 2026-01-30 13:06:18 -06:00
parent 65f0f23c93
commit ef8d9199ba

View file

@ -22,11 +22,13 @@ ARG RUNNER_IMAGE="docker.io/debian:${DEBIAN_VERSION}"
FROM ${BUILDER_IMAGE} AS builder
ENV MIX_OS_DEPS_COMPILE_PARTITION_COUNT=6
# Disable TTY for cross-architecture builds
ENV TERM=dumb
# install build dependencies
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential git \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends build-essential git libsnmp-dev \
&& rm -rf /var/lib/apt/lists/*
# prepare build dir
@ -61,6 +63,11 @@ RUN --mount=type=cache,target=/root/.mix \
COPY priv priv
COPY c_src c_src
# Compile the C NIF before Elixir compilation
RUN cd c_src && make
COPY lib lib
# Compile the release
@ -83,7 +90,7 @@ FROM ${RUNNER_IMAGE} AS final
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get upgrade -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libstdc++6 openssl libncurses6 locales ca-certificates iputils-ping snmp \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libstdc++6 openssl libncurses6 locales ca-certificates iputils-ping snmp libsnmp40 \
&& rm -rf /var/lib/apt/lists/*
# Set the locale