Docker image and scripts for flutter/rust/android development in vscode.
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

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"]