FROM ubuntu:22.04 LABEL maintainer="Updated for modern Android SDK" # Set up insecure default key COPY adbkey adbkey.pub adb_usb.ini /root/.android/ ENV ANDROID_SDK_ROOT=/opt/android-sdk \ ANDROID_HOME=/opt/android-sdk \ LANG=en_US.UTF-8 \ LANGUAGE=en_US:en \ LC_ALL=en_US.UTF-8 \ PATH="$PATH:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/emulator" # Use specific cmdline-tools version ENV CMDLINE_TOOLS_URL=https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip RUN dpkg --add-architecture i386 && \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -yq \ software-properties-common \ libstdc++6:i386 \ zlib1g:i386 \ libncurses5:i386 \ locales \ ca-certificates \ apt-transport-https \ curl \ unzip \ redir \ iproute2 \ openjdk-17-jdk-headless \ xvfb \ x11vnc \ fluxbox \ libpulse0 \ telnet \ expect \ qemu-utils \ libglu1-mesa \ libnss3 \ libxcomposite1 \ libxcursor1 \ libxi6 \ libxtst6 \ libasound2 \ --no-install-recommends && \ locale-gen en_US.UTF-8 && \ # Install Android SDK cmdline-tools mkdir -p /opt/android-sdk/cmdline-tools && \ curl -L $CMDLINE_TOOLS_URL -o /tmp/cmdline-tools.zip && \ unzip -q /tmp/cmdline-tools.zip -d /tmp && \ mv /tmp/cmdline-tools /opt/android-sdk/cmdline-tools/latest && \ rm /tmp/cmdline-tools.zip && \ # Accept licenses yes | sdkmanager --licenses && \ # Install emulator, platform-tools, and specific platform sdkmanager "emulator" "platform-tools" "platforms;{{ platform }}" "system-images;{{ platform }};google_apis;x86_64" --verbose && \ # Create AVD echo no | avdmanager create avd -n "x86_64" --package "system-images;{{ platform }};google_apis;x86_64" --tag google_apis --device "pixel_2" && \ # Clean up apt-get -yq autoremove && \ apt-get clean && \ apt-get autoclean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* COPY config.ini /root/.android/avd/x86_64.avd/config.ini # Expose adb and emulator ports EXPOSE 5037 5554 5555 5900 # Add start script COPY start.sh /start.sh RUN chmod +x /start.sh CMD ["/start.sh"]