38 lines
1.9 KiB
Docker
38 lines
1.9 KiB
Docker
|
|
FROM mcr.microsoft.com/dotnet/sdk:10.0
|
||
|
|
|
||
|
|
# ── Java (required by the Android SDK tools) ─────────────────────────────────
|
||
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
|
|
openjdk-17-jdk-headless \
|
||
|
|
wget \
|
||
|
|
unzip \
|
||
|
|
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||
|
|
ENV ANDROID_HOME=/opt/android-sdk
|
||
|
|
ENV ANDROID_SDK_PLATFORM=34
|
||
|
|
ENV ANDROID_SDK_BUILD_TOOLS=34.0.0
|
||
|
|
|
||
|
|
# ── Android command-line tools ────────────────────────────────────────────────
|
||
|
|
# Pin the build number to a known-good release; update when Google breaks the URL.
|
||
|
|
# Latest as of 2025: commandlinetools-linux-11076708_latest.zip (cmdline-tools 12.0)
|
||
|
|
RUN mkdir -p "${ANDROID_HOME}/cmdline-tools" && \
|
||
|
|
wget -q "https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip" \
|
||
|
|
-O /tmp/cmdtools.zip && \
|
||
|
|
unzip -q /tmp/cmdtools.zip -d "${ANDROID_HOME}/cmdline-tools" && \
|
||
|
|
mv "${ANDROID_HOME}/cmdline-tools/cmdline-tools" "${ANDROID_HOME}/cmdline-tools/latest" && \
|
||
|
|
rm /tmp/cmdtools.zip
|
||
|
|
|
||
|
|
ENV PATH="${JAVA_HOME}/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${ANDROID_HOME}/platform-tools:${PATH}"
|
||
|
|
|
||
|
|
# ── Android SDK packages ──────────────────────────────────────────────────────
|
||
|
|
RUN yes | sdkmanager --licenses > /dev/null && \
|
||
|
|
sdkmanager \
|
||
|
|
"platform-tools" \
|
||
|
|
"platforms;android-${ANDROID_SDK_PLATFORM}" \
|
||
|
|
"build-tools;${ANDROID_SDK_BUILD_TOOLS}"
|
||
|
|
|
||
|
|
# ── dotnet android workload (~1 GB, baked into this layer) ───────────────────
|
||
|
|
RUN dotnet workload install android
|
||
|
|
|
||
|
|
WORKDIR /tmp/build
|