FROM ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive ENV HOSTNAME=xro ENV ANDROID_SDK_ROOT=/opt/android-sdk ENV ANDROID_HOME=/opt/android-sdk ENV PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:/opt/android-studio/bin ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 # ----------------------------- # Base packages # ----------------------------- RUN apt-get update && apt-get install -y \ ca-certificates \ curl \ wget \ git \ sudo \ htop \ neovim \ nano \ lsof \ tmux \ unzip \ zip \ python3 \ python3-pip \ openjdk-17-jdk \ && rm -rf /var/lib/apt/lists/* # ----------------------------- # Android SDK cmdline-tools # ----------------------------- RUN mkdir -p /opt/android-sdk/cmdline-tools && \ wget -t 5 -T 30 -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O /tmp/cmdtools.zip && \ unzip /tmp/cmdtools.zip -d /opt/android-sdk/cmdline-tools && \ mv /opt/android-sdk/cmdline-tools/cmdline-tools /opt/android-sdk/cmdline-tools/latest && \ rm /tmp/cmdtools.zip # Accept SDK licenses RUN yes | sdkmanager --licenses # Install SDK + old platforms for ARM/legacy devices RUN sdkmanager \ "platform-tools" \ "platforms;android-34" \ "platforms;android-30" \ "platforms;android-28" \ "platforms;android-26" \ "platforms;android-24" \ "platforms;android-21" \ "build-tools;34.0.0" \ "build-tools;30.0.3" \ "build-tools;28.0.3" \ "ndk;26.1.10909125" \ "ndk;23.2.8568313" \ "cmake;3.22.1" # ----------------------------- # Android Studio # ----------------------------- RUN wget -t 5 -T 30 -q https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.3.1.18/android-studio-2023.3.1.18-linux.tar.gz -O /tmp/android-studio.tar.gz && \ tar -xzf /tmp/android-studio.tar.gz -C /opt/ && \ rm /tmp/android-studio.tar.gz # ----------------------------- # Projector installer # ----------------------------- RUN pip install projector-installer # Install Android Studio in Projector non-interactive mode RUN printf "y\n" | projector install android-studio --ide Idea_Community --quick --accept-license # ----------------------------- # Workspace # ----------------------------- WORKDIR /workspace # Copy start script COPY start.sh /start.sh RUN chmod +x /start.sh # Expose Projector default port EXPOSE 7860 CMD ["/start.sh"]