# This Dockerfile generates the docker image that gets used by Gitlab CI # To build it for arm64 and amd64 (YYYYMMDD.HHMM is the current date and time in UTC): # docker buildx create --use # docker buildx build --platform linux/amd64,linux/arm64/v8 \ # -t registry.gitlab.com/buildroot.org/buildroot/base:YYYYMMDD.HHMM \ # --push support/docker # We use a specific tag for the base image *and* the corresponding date # for the repository., so do not forget to update the apt-sources.list # file that is shipped next to this Dockerfile. FROM debian:bookworm-20250203 LABEL maintainer="Buildroot mailing list " \ vendor="Buildroot" \ description="Container with everything needed to run Buildroot" # Architecture to build for ARG TARGETPLATFORM # We need tar >= 1.35 ARG TAR_VERSION="1.35" # Setup environment ENV DEBIAN_FRONTEND=noninteractive # This repository can be a bit slow at times. Don't panic... COPY apt-sources.list /etc/apt/sources.list # Install 32bit variant on x86_64 image. RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ dpkg --add-architecture i386; \ fi # The container has no package lists, so need to update first RUN apt-get -o APT::Retries=3 update -y RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \ apt-get -o APT::Retries=3 install -y --no-install-recommends \ g++-multilib \ libc6:i386; \ fi RUN apt-get -o APT::Retries=3 install -y --no-install-recommends \ bc \ build-essential \ bzr \ ca-certificates \ cmake \ cpio \ curl \ cvs \ file \ flake8 \ g++ \ git \ libncurses5-dev \ locales \ mercurial \ openssh-server \ python3 \ python3-flake8 \ python3-magic \ python3-nose2 \ python3-pexpect \ python3-pytest \ qemu-system-arm \ qemu-system-misc \ qemu-system-x86 \ rsync \ shellcheck \ subversion \ unzip \ wget \ && \ apt-get -y autoremove && \ apt-get -y clean # Build host-tar RUN curl -sfL https://ftpmirror.gnu.org/tar/tar-${TAR_VERSION}.tar.xz | \ tar -Jx -C /tmp && \ cd /tmp/tar-${TAR_VERSION} && \ FORCE_UNSAFE_CONFIGURE=1 ./configure \ --disable-year2038 && \ make && \ make install && \ rm -rf /tmp/tar-${TAR_VERSION} # To be able to generate a toolchain with locales, enable one UTF-8 locale RUN sed -i 's/# \(en_US.UTF-8\)/\1/' /etc/locale.gen && \ /usr/sbin/locale-gen RUN 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