Dockerfile34 lines · 1505 chars # Use a Linux base image with OpenJDK and Android SDK setup via command line tools
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
# Install required packages
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates curl unzip openjdk-8-jdk git wget build-essential && rm -rf /var/lib/apt/lists/*
# Java environment
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ENV PATH=$PATH:$JAVA_HOME/bin
# Android SDK installation
ENV ANDROID_SDK_ROOT=/sdk
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/tools/bin:$ANDROID_SDK_ROOT/platform-tools
RUN mkdir -p ${ANDROID_SDK_ROOT} && \
curl -L https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip -o /tmp/commandlinetools.zip && \
unzip /tmp/commandlinetools.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \
# Move to 'latest' folder to satisfy PATH lookups
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest && \
rm /tmp/commandlinetools.zip && \
yes | sdkmanager --sdk_root=${ANDROID_SDK_ROOT} "platform-tools" "platforms;android-25" "build-tools;25.0.1" "extras;android;m2repository" "extras;google;m2repository"
# Set working directory and copy source
WORKDIR /workspace
COPY . .
# Build the project using the Gradle wrapper
RUN ./gradlew clean assembleDebug || true
CMD ["bash","-lc","echo Build complete; ls -la Sample/build/outputs/apk/debug || true; tail -f /dev/null"]