Dockerfile47 lines · 1632 chars FROM eclipse-temurin:21-jdk-jammy
LABEL maintainer="BuildAgent"
# Install essential tools
RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates zip unzip git && \
rm -rf /var/lib/apt/lists/*
# Android SDK setup
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV ANDROID_HOME=$ANDROID_SDK_ROOT
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools
RUN mkdir -p "$ANDROID_SDK_ROOT" && \
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" && \
cd /tmp && \
echo "Downloading Android commandline tools..." && \
curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o commandlinetools.zip && \
unzip -q commandlinetools.zip -d /tmp/cmdline-tools && \
mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" && \
mv /tmp/cmdline-tools/cmdline-tools "$ANDROID_SDK_ROOT/cmdline-tools/tools" && \
rm commandlinetools.zip && \
yes | "$ANDROID_SDK_ROOT/cmdline-tools/tools/bin/sdkmanager" --sdk_root="$ANDROID_SDK_ROOT" \
"platform-tools" \
"platforms;android-33" \
"build-tools;33.0.0" \
"extras;android;m2repository" \
"extras;google;m2repository" && \
rm -rf /tmp/cmdline-tools
# Prepare project
WORKDIR /workspace
COPY . /workspace
RUN chmod +x gradlew
# Ensure Gradle wrapper can download dependencies
RUN ./gradlew --version
# Create local.properties to point Gradle to Android SDK
RUN bash -lc "echo sdk.dir=$ANDROID_SDK_ROOT > local.properties"
# Build a debug APK by default (signing not required for debug builds)
RUN ./gradlew assembleDebug
CMD ["bash"]