You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
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"]
|
|
|