adapted from this

FROM debian:12.11
 
ARG U_NAME="user"
ARG U_ID="1000"
RUN adduser --disabled-password --gecos '' --uid ${U_ID} ${U_NAME}
 
 
WORKDIR /home/${U_NAME}
 
#=================================#
# download + build QEMU
 
USER root
 
# required + recommended additional packages
RUN apt-get update && apt-get install -y \
		git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build \
		git-email libsdl2-dev libgtk-3-dev libvte-dev libcapstone-dev \
	&& rm -rf /var/lib/apt/lists/*
 
# (these were also needed)
RUN apt-get update && apt-get install -y \
		wget \
		python3-venv \
		flex \
		bison \
	&& rm -rf /var/lib/apt/lists/*
 
# for ALSA audio support
RUN apt-get update && apt-get install -y \
		libasound2 \
		alsa-utils \
	&& rm -rf /var/lib/apt/lists/*
 
# (if you want JACK audio support, install these before build)
#RUN apt-get update && apt-get install -y \
#		jackd2 libjack-jackd2-dev \
#	&& rm -rf /var/lib/apt/lists/*
 
 
USER ${U_NAME}
RUN \
	wget https://download.qemu.org/qemu-10.0.2.tar.xz && \
	tar xJf qemu-10.0.2.tar.xz && \
	cd qemu-10.0.2 && \
	./configure && \
	make -j4
#=================================#
 
#=================================#
USER root
 
# for GUI stuff (via host)
RUN usermod -a -G audio ${U_NAME}
RUN usermod -a -G video ${U_NAME}
RUN groupadd -g 106 render && usermod -a -G render ${U_NAME}
#=================================#
 
USER ${U_NAME}

for passing audio/video from host: