Dockerfile42 lines · 1660 chars FROM gradle:9.2.1-jdk21 AS builder
ENV ANDROID_SDK_ROOT=/android-sdk
ENV PATH="$PATH:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools"
# Install minimal system tools
RUN apt-get update && apt-get install -y --no-install-recommends \
curl unzip git ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Install Android command-line tools (minimal)
RUN mkdir -p ${ANDROID_SDK_ROOT} && \
mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
cd /tmp && \
curl -sSfL https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o commandlinetools-linux.zip && \
unzip -q commandlinetools-linux.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \
rm commandlinetools-linux.zip && \
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest && \
mkdir -p ${ANDROID_SDK_ROOT}/platform-tools
# Accept licenses and install minimal SDK components
RUN yes | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --licenses || true
RUN ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager \
"platform-tools" \
"platforms;android-33" \
"build-tools;33.0.0" \
"ndk;21.4.7075529"
WORKDIR /workspace
COPY . /workspace
# Enable Gradle toolchains to use installed JDKs from the environment
RUN echo "org.gradle.java.installations.auto-detect=true" > gradle.properties && \
echo "org.gradle.java.installations.fromEnv=true" >> gradle.properties
RUN chmod +x gradlew
# Build only the library module to speed up verification
RUN ./gradlew :android-gif-drawable:assembleDebug -x test
# Provide an interactive shell for inspection
CMD ["bash"]