googlesamples-easypermissions
SUCCESS
11m 03s
History Source
SummaryIterations1Transcript9Dockerfile
Dockerfile47 lines · 1870 chars
FROM gradle:8.14-jdk11-jammy

# Android SDK installation and environment
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV ANDROID_HOME=$ANDROID_SDK_ROOT
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/platform-tools

# Install required system tools
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
     curl unzip zip ca-certificates git \
  && rm -rf /var/lib/apt/lists/*

# Install Android Command-line Tools and SDK platforms/tools
RUN mkdir -p "$ANDROID_SDK_ROOT" \
  && mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" \
  && curl -o /tmp/commandlinetools-linux.zip -L https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip \
  && unzip -q /tmp/commandlinetools-linux.zip -d "$ANDROID_SDK_ROOT/cmdline-tools" \
  && mv "$ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools" "$ANDROID_SDK_ROOT/cmdline-tools/latest" \
  && yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses \
  && "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" "platforms;android-30" "build-tools;30.0.3" "platform-tools" \
  && rm -f /tmp/commandlinetools-linux.zip

# Environment for Java 11
ENV JAVA_HOME=/usr/local/openjdk-11

# Work directory
WORKDIR /workspace

# Copy source
COPY . /workspace

# Ensure gradlew is executable
RUN chmod +x ./gradlew

# Provide local.properties pointing to the Android SDK (required by Gradle Android plugin)
RUN bash -lc "echo sdk.dir=$ANDROID_SDK_ROOT > local.properties"

# Build the project from source (skip tests for speed in CI)
RUN ./gradlew clean assemble -x test

# Show build outputs (if any)
RUN ls -la app/build/outputs/apk || true

# Keep container alive after build to allow inspection if needed
CMD ["bash", "-lc", "echo Build complete. APKs (if any) are under app/build/outputs/apk; tail -f /dev/null"]