Dockerfile60 lines · 1865 chars FROM ubuntu:20.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
curl \
unzip \
git \
openjdk-11-jdk-headless \
wget \
ca-certificates-java \
software-properties-common \
&& rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
ENV PATH="$PATH:$JAVA_HOME/bin"
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/bin:$ANDROID_SDK_ROOT/platform-tools"
RUN mkdir -p "$ANDROID_SDK_ROOT/cmdline-tools" \
&& cd /tmp \
&& curl -fsSL https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip -o commandlinetools.zip \
&& unzip -q commandlinetools.zip -d "$ANDROID_SDK_ROOT/cmdline-tools" \
&& rm commandlinetools.zip \
&& mv "$ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools" "$ANDROID_SDK_ROOT/cmdline-tools/latest" \
&& mkdir -p "$ANDROID_SDK_ROOT/tools" \
&& mkdir -p "$ANDROID_SDK_ROOT/platform-tools" \
&& yes | "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" --licenses
RUN "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager" \
"platforms;android-28" \
"build-tools;28.0.3" \
"platform-tools" \
"extras;android;m2repository" \
"extras;google;m2repository" >/dev/null
WORKDIR /workspace
# Copy source
COPY . /workspace
# Update Gradle wrapper distribution to 6.9
RUN sed -i 's@distributionUrl=.*@distributionUrl=https://services.gradle.org/distributions/gradle-6.9-all.zip@' gradle/wrapper/gradle-wrapper.properties
RUN chmod +x gradlew
# Build the project from source
RUN ./gradlew clean assembleRelease -x test
# Runtime image
FROM ubuntu:20.04
WORKDIR /workspace
COPY --from=builder /workspace /workspace
CMD ["bash"]