docker-ripe-atlas/Dockerfile

77 lines
2.7 KiB
Docker
Raw Normal View History

2020-05-07 06:41:53 -07:00
## builder
FROM --platform=$BUILDPLATFORM debian:10-slim as builder
2020-04-17 03:55:57 -07:00
LABEL image="ripe-atlas-builder"
ARG BUILDPLATFORM
ARG TARGETPLATFORM
2020-04-17 03:55:57 -07:00
ARG DEBIAN_FRONTEND=noninteractive
ARG GIT_URL=https://github.com/RIPE-NCC/ripe-atlas-software-probe.git
WORKDIR /root
RUN if [ "$BUILDPLATFORM" != "$TARGETPLATFORM" ] ; then \
case ${TARGETPLATFORM} in \
"linux/arm64") echo 'export CROSSBUILD_ARCH=arm64 CROSS_COMPILE_TARGET=aarch64-linux-gnu' > env ;; \
"linux/arm/v7") echo 'export CROSSBUILD_ARCH=armhf CROSS_COMPILE_TARGET=arm-linux-gnueabihf' > env ;; \
"linux/386") echo 'export CROSSBUILD_ARCH=i386 CROSS_COMPILE_TARGET=i686-linux-gnu' > env ;; \
"linux/amd64") echo 'export CROSSBUILD_ARCH=amd64 CROSS_COMPILE_TARGET=x86_64-linux-gnu' > env ;; \
*) echo "Unsupported platform"; exit 1 ;; \
esac \
&& . ./env \
&& dpkg --add-architecture $CROSSBUILD_ARCH \
&& apt-get update -y \
&& apt-get install -y libssl-dev:$CROSSBUILD_ARCH crossbuild-essential-$CROSSBUILD_ARCH; \
fi \
&& apt-get update -y \
&& apt-get install -y git tar fakeroot libssl-dev libcap2-bin autoconf automake libtool build-essential
2020-04-17 03:55:57 -07:00
RUN git clone --recursive "$GIT_URL"
RUN if [ "$BUILDPLATFORM" != "$TARGETPLATFORM" ] ; then \
. ./env \
&& export CROSS_COMPILE="$CROSS_COMPILE_TARGET-" \
&& sed -i 's/.\/configure/.\/configure --host='$CROSS_COMPILE_TARGET'/g' ./ripe-atlas-software-probe/build-config/debian/bin/make-deb \
&& sed -i 's/ARCH=$(get_arch)/ARCH='$CROSSBUILD_ARCH'/g' ./ripe-atlas-software-probe/build-config/debian/bin/make-deb; \
fi \
&& ./ripe-atlas-software-probe/build-config/debian/bin/make-deb
## artifacts
FROM scratch AS artifacts
LABEL image="ripe-atlas-artifacts"
COPY --from=builder /root/atlasswprobe-*.deb /
2020-04-17 03:55:57 -07:00
2020-05-07 06:41:53 -07:00
## the actual image
2023-06-13 22:36:22 +08:00
FROM debian:10-slim
2020-04-17 03:55:57 -07:00
LABEL maintainer="dockerhub@public.swineson.me"
2020-05-07 06:41:53 -07:00
LABEL image="ripe-atlas"
2020-04-17 03:55:57 -07:00
ARG DEBIAN_FRONTEND=noninteractive
COPY --from=builder /root/atlasswprobe-*.deb /tmp
ARG ATLAS_UID=101
ARG ATLAS_GID=999
2020-05-07 06:41:53 -07:00
RUN ln -s /bin/true /bin/systemctl \
&& adduser --system --uid $ATLAS_UID atlas \
&& groupadd --force --system --gid $ATLAS_GID atlas \
&& usermod -aG atlas atlas \
2020-05-07 06:41:53 -07:00
&& apt-get update -y \
2023-06-13 22:36:22 +08:00
&& apt-get install -y libcap2-bin iproute2 openssh-client procps net-tools gosu \
2020-04-17 03:55:57 -07:00
&& dpkg -i /tmp/atlasswprobe-*.deb \
&& apt-get install -fy \
&& rm -rf /var/lib/apt/lists/* \
2020-05-07 06:41:53 -07:00
&& rm -f /tmp/atlasswprobe-*.deb \
&& ln -s /usr/local/atlas/bin/ATLAS /usr/local/bin/atlas
2020-04-17 03:55:57 -07:00
COPY entrypoint.sh /usr/local/bin
RUN chmod +x /usr/local/bin/* \
&& chown -R atlas:atlas /var/atlas-probe \
&& mkdir -p /var/atlasdata \
&& chown -R atlas:atlas /var/atlasdata \
&& chmod 777 /var/atlasdata
WORKDIR /var/atlas-probe
VOLUME [ "/var/atlas-probe/etc", "/var/atlas-probe/status" ]
ENTRYPOINT [ "entrypoint.sh" ]
CMD [ "atlas" ]