Dockerfile37 lines · 1563 chars FROM gradle:latest
# Install dependencies (Android SDK is required for Android projects). We'll install OpenJDK 8 and Android CLI tools.
RUN apt-get update && \
apt-get install -y --no-install-recommends curl ca-certificates unzip git openjdk-8-jdk && \
rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ENV PATH="$PATH:${JAVA_HOME}/bin"
# Android SDK setup
ENV ANDROID_SDK_ROOT=/opt/android-sdk
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
mkdir -p ${ANDROID_SDK_ROOT}/platform-tools && \
curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip -o /tmp/commandlinetools.zip && \
unzip -q /tmp/commandlinetools.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools/ && \
rm /tmp/commandlinetools.zip && \
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest && \
yes | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} "platform-tools" "platforms;android-29" "build-tools;29.0.3" && \
mkdir -p ${ANDROID_SDK_ROOT}/licenses
ENV PATH="$PATH:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin"
WORKDIR /workspace
COPY . /workspace
RUN chmod +x gradlew
# Accept licenses (non-interactive)
RUN mkdir -p ${ANDROID_SDK_ROOT}/licenses && yes | ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --licenses || true
# Build the project from source
RUN ./gradlew clean assembleDebug
# Default to a shell so users can run commands if they want
CMD ["/bin/bash"]