69 lines
1.4 KiB
Docker
69 lines
1.4 KiB
Docker
FROM debian:bookworm
|
|
|
|
# Install all build dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential \
|
|
git \
|
|
curl \
|
|
wget \
|
|
bzip2 \
|
|
unzip \
|
|
ca-certificates \
|
|
python3 \
|
|
file \
|
|
g++ \
|
|
make \
|
|
libncurses-dev \
|
|
rsync \
|
|
bc \
|
|
patch \
|
|
perl \
|
|
cpio \
|
|
sudo \
|
|
xz-utils \
|
|
gnupg \
|
|
flex \
|
|
bison \
|
|
texinfo
|
|
|
|
|
|
# Create non-root user and setup environment
|
|
RUN useradd -m -s /bin/bash buildroot && \
|
|
echo "buildroot ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
|
|
|
# Buildroot version
|
|
ENV BUILDROOT_VERSION=2025.05
|
|
ENV BUILDROOT_DIR=/home/buildroot/buildroot
|
|
|
|
USER buildroot
|
|
WORKDIR /home/buildroot
|
|
|
|
# Download and extract Buildroot
|
|
RUN mkdir -p $BUILDROOT_DIR && \
|
|
curl -LO https://buildroot.org/downloads/buildroot-${BUILDROOT_VERSION}.tar.gz && \
|
|
tar -xzf buildroot-${BUILDROOT_VERSION}.tar.gz -C /home/buildroot && \
|
|
rm buildroot-${BUILDROOT_VERSION}.tar.gz && \
|
|
mv /home/buildroot/buildroot-${BUILDROOT_VERSION}/* $BUILDROOT_DIR
|
|
|
|
# Set up workdir
|
|
WORKDIR $BUILDROOT_DIR
|
|
|
|
# Unset host compiler env vars
|
|
ENV CC=
|
|
ENV CXX=
|
|
|
|
|
|
COPY .config .config
|
|
RUN make oldconfig
|
|
RUN make -j16
|
|
|
|
# Done — toolchain will be in /opt/buildroot/output/host
|
|
# Rootfs (if selected) will be in /opt/buildroot/output/images
|
|
|
|
# Set default workdir in case user wants to enter
|
|
RUN echo 'export "PATH=/home/buildroot/buildroot/output/host/bin:$PATH"' >> ~/.bashrc
|
|
|
|
WORKDIR /build
|
|
|
|
CMD ["/bin/bash"]
|