FROM --platform=linux/amd64 debian:bookworm-slim

ENV PATH="$PATH:/opt/flutter/bin"

# Install system dependencies
RUN apt-get update && apt-get install -y \
    wget curl unzip git xz-utils zip libglu1-mesa openjdk-17-jdk\
    && rm -rf /var/lib/apt/lists/*

# Become non-root
ARG USERNAME=vscode
ARG USER_UID=1000
ARG USER_GID=1000

ENV FLUTTER_VERSION=3.41.8
ENV FLUTTER_HOME=/opt/flutter
RUN groupadd --gid $USER_GID $USERNAME \
 && useradd --uid $USER_UID --gid $USER_GID -m -s /bin/bash $USERNAME


# Install Flutter
RUN git clone https://github.com/flutter/flutter.git ${FLUTTER_HOME} \
    && cd ${FLUTTER_HOME} \
    && git checkout $FLUTTER_VERSION

# Set up Android SDK
ENV ANDROID_HOME=/opt/android-sdk
ENV PATH=${PATH}:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${ANDROID_HOME}/build-tools/36.0.0

RUN mkdir -p ${ANDROID_HOME}/cmdline-tools \
    && wget https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip -O commandlinetools.zip \
    && unzip commandlinetools.zip -d ${ANDROID_HOME}/cmdline-tools \
    && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest \
    && rm commandlinetools.zip && yes | sdkmanager --licenses \
    && sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0"
RUN chown -R 1000:1000 ${ANDROID_HOME} && chown -R 1000:1000 ${FLUTTER_HOME}

USER $USERNAME
ENV HOME=/home/$USERNAME