FROM node:22-bookworm ARG CMDLINE_TOOLS_VERSION=15859902 ARG ANDROID_PLATFORM=android-36 ARG ANDROID_BUILD_TOOLS=36.0.0 ARG ANDROID_NDK=27.1.12297006 RUN apt-get update && apt-get install -y --no-install-recommends \ openjdk-17-jdk-headless unzip curl ca-certificates git \ && rm -rf /var/lib/apt/lists/* \ && ln -s "$(dirname "$(dirname "$(readlink -f "$(which javac)")")")" /opt/java17 ENV JAVA_HOME=/opt/java17 \ ANDROID_HOME=/opt/android-sdk \ GRADLE_USER_HOME=/home/node/.gradle \ CI=1 ENV ANDROID_SDK_ROOT=$ANDROID_HOME ENV PATH=$JAVA_HOME/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH RUN mkdir -p "$ANDROID_HOME/cmdline-tools" \ && curl -fsSL -o /tmp/cmdline-tools.zip \ "https://dl.google.com/android/repository/commandlinetools-linux-${CMDLINE_TOOLS_VERSION}_latest.zip" \ && unzip -q /tmp/cmdline-tools.zip -d "$ANDROID_HOME/cmdline-tools" \ && mv "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/latest" \ && rm /tmp/cmdline-tools.zip \ && yes | sdkmanager --licenses > /dev/null \ && sdkmanager "platform-tools" "platforms;${ANDROID_PLATFORM}" \ "build-tools;${ANDROID_BUILD_TOOLS}" "ndk;${ANDROID_NDK}" \ && chown -R node:node "$ANDROID_HOME" RUN npm install -g eas-cli \ && mkdir -p "$GRADLE_USER_HOME" && chown -R node:node /home/node \ # mounted repos are owned by a different uid; stop git complaining && git config --system --add safe.directory '*' USER node WORKDIR /workspace CMD ["bash"]