ARG REGISTRY=docker.io ARG UPSTREAM_DISTRO=debian:bookworm FROM ${REGISTRY}/${UPSTREAM_DISTRO} # Arguments used after FROM must be specified again ARG OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org" ARG OSMOCOM_REPO_PATH="packages/osmocom:" ARG OSMOCOM_REPO="${OSMOCOM_REPO_MIRROR}/${OSMOCOM_REPO_PATH}/latest/Debian_12/" ARG UID # Install the erlang vm and rebar (2 and 3) RUN set -x && \ apt-get update && \ apt-get install -y --no-install-recommends \ erlang \ rebar \ rebar3 \ && \ apt-get clean # Install minimal build utilities as well as system utilities RUN set -x && \ apt-get update && \ apt-get install -y --no-install-recommends \ build-essential \ git \ iproute2 \ netcat-openbsd \ procps \ tcpdump \ vim \ wget \ && \ apt-get clean # Install additional C-language / system dependencies of our Erlang projects RUN set -x && \ apt-get update && \ apt-get install -y --no-install-recommends \ libpcap-dev \ libsctp1 \ && \ apt-get clean # Add osmocom latest repo, should we ever require packages from there COPY .common/Release.key /usr/share/keyrings/osmocom-latest.asc ADD $OSMOCOM_REPO/Release /tmp/Release RUN set -x && \ apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ gnupg \ && \ apt-get clean && \ echo "deb [signed-by=/usr/share/keyrings/osmocom-latest.asc] $OSMOCOM_REPO ./" \ > /etc/apt/sources.list.d/osmocom-latest.list # Add a non-root user under which we will normaly execute build tests RUN useradd --uid=${UID} -m build WORKDIR /home/build USER build