#syntax=docker/dockerfile:1.2

# hadolint ignore=DL3029
FROM --platform=$BUILDPLATFORM debian:bullseye-20211201 AS buildroot-base

# hadolint ignore=DL3008
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        bc \
        build-essential \
        ca-certificates \
        cmake \
        cpio \
        file \
        git \
        locales \
        python3 \
        rsync \
        unzip \
        wget && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

# hadolint ignore=DL3059
RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen && \
    /usr/sbin/locale-gen && \
	useradd -ms /bin/bash br-user && \
    chown -R br-user:br-user /home/br-user

USER br-user

WORKDIR /home/br-user

ENV HOME=/home/br-user

ENV LC_ALL=en_US.UTF-8

ARG BR_VERSION=2021.11

RUN git clone --depth 1 --branch ${BR_VERSION} https://git.busybox.net/buildroot

FROM buildroot-base as rootfs

WORKDIR /home/br-user/buildroot

ARG TARGETARCH
ARG TARGETVARIANT
ARG ROOTFS_LIBC=glibc

COPY *.patch ./

RUN git apply ./*.patch

COPY config ./config

RUN support/kconfig/merge_config.sh -m \
	config/common.cfg \
	config/arch/"${TARGETARCH}${TARGETVARIANT}".cfg \
	config/libc/"${ROOTFS_LIBC}".cfg \
	config/unbound.cfg

COPY rootfs_overlay ./rootfs_overlay

RUN --mount=type=cache,target=/cache,uid=1000,gid=1000,sharing=private \
    make olddefconfig && make source && make

# hadolint ignore=DL3002
USER root

WORKDIR /rootfs

RUN tar xpf /home/br-user/buildroot/output/images/rootfs.tar -C /rootfs

FROM scratch

COPY --from=rootfs rootfs/ /

ENTRYPOINT [ "unbound" ]
