63 lines
1.3 KiB
Docker
63 lines
1.3 KiB
Docker
FROM ubuntu:22.04
|
|
|
|
# Prevent interactive prompts during package installation
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install Yocto build dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
gawk \
|
|
wget \
|
|
git \
|
|
diffstat \
|
|
unzip \
|
|
texinfo \
|
|
gcc \
|
|
build-essential \
|
|
chrpath \
|
|
socat \
|
|
cpio \
|
|
python3 \
|
|
python3-pip \
|
|
python3-pexpect \
|
|
xz-utils \
|
|
debianutils \
|
|
iputils-ping \
|
|
python3-git \
|
|
python3-jinja2 \
|
|
python3-subunit \
|
|
zstd \
|
|
liblz4-tool \
|
|
file \
|
|
locales \
|
|
libacl1 \
|
|
sudo \
|
|
vim \
|
|
less \
|
|
tree \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set up locale
|
|
RUN locale-gen en_US.UTF-8
|
|
ENV LANG=en_US.UTF-8
|
|
ENV LANGUAGE=en_US:en
|
|
ENV LC_ALL=en_US.UTF-8
|
|
|
|
# Create non-root user for Yocto builds (Yocto doesn't like running as root)
|
|
RUN useradd -m -s /bin/bash yocto && \
|
|
echo "yocto ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
|
|
# Set working directory
|
|
WORKDIR /workspace
|
|
|
|
# Change ownership of workspace to yocto user
|
|
RUN chown -R yocto:yocto /workspace
|
|
|
|
# Switch to yocto user
|
|
USER yocto
|
|
|
|
# Set up git configuration (required for Yocto)
|
|
RUN git config --global user.name "Yocto Builder" && \
|
|
git config --global user.email "yocto@builder.local"
|
|
|
|
# Default command to start interactive shell
|
|
CMD ["/bin/bash"] |