FROM ubuntu:22.04 # Prevent interactive prompts during package installation ENV DEBIAN_FRONTEND=noninteractive # Install 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 \ qemu-system-data \ qemu-system-x86 \ qemu-utils \ && 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 build user matching host UID/GID ARG USER_ID=1000 ARG GROUP_ID=1000 ARG KVM_GID=992 RUN groupadd -g ${GROUP_ID} builder && \ useradd -u ${USER_ID} -g ${GROUP_ID} -ms /bin/bash builder && \ groupadd -g ${KVM_GID} kvm && \ usermod -a -G kvm builder # Enable compiler cache for performance ENV USE_CCACHE=1 ENV CCACHE_DIR=/workspace/.ccache # Set working directory WORKDIR /workspace # Change ownership of workspace to yocto user RUN chown -R builder:builder /workspace # Switch to yocto user USER builder # Default command to start interactive shell CMD ["/bin/bash"]