FROM debian:bookworm-20241111-slim ARG USER_UID=1000 ARG USER_GID=1000 ENV DEV_INIT_DIR=/opt/dev-init ENV JAVA_VERSION="17" # Install essential packages RUN dpkg --add-architecture i386 && \ apt-get update && \ apt-get install -y --no-install-recommends \ bash \ ca-certificates \ wget \ curl \ file \ git \ unzip \ xz-utils \ zip \ libglu1-mesa \ cmake cmake-curses-gui \ gcc g++ \ clang \ cmake cmake-curses-gui \ ninja-build pkg-config \ libgtk-3-dev liblzma-dev \ libstdc++-12-dev \ sudo \ micro \ nano \ llvm \ libclang-dev \ libc6:i386 \ libncurses5:i386 \ libstdc++6:i386 \ lib32z1 \ lib32z1-dev \ openjdk-${JAVA_VERSION}-jdk \ libpulse-java \ gosu \ && rm -rf /var/lib/apt/lists/* ENV JAVA_HOME /usr/lib/jvm/java-${JAVA_VERSION}-openjdk-amd64 # Create non-root user with specified UID and GID RUN groupadd -g ${USER_GID} developer && \ useradd -u ${USER_UID} -g ${USER_GID} -ms /bin/bash developer && \ usermod -aG sudo developer && \ echo "developer:developer" | chpasswd && \ echo 'developer ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ chmod 0440 /etc/sudoers RUN curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb RUN apt-get update -y && apt-get install -y ./google-chrome-stable_current_amd64.deb && \ rm google-chrome-stable_current_amd64.deb COPY --chown=developer:developer sample_projects /opt/sample_projects COPY dev-init dev-init $DEV_INIT_DIR RUN chmod +x $DEV_INIT_DIR/* # add group 108 (kvm group) RUN groupadd -g 108 kvm && \ usermod -aG kvm developer COPY entrypoint.sh / RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"]