Dockerfile1602 bytes written ▸text35 lines · 1602 chars
FROM gradle:8.14.5-jdk11-jammy
# Install system dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends curl unzip wget git ca-certificates && \
rm -rf /var/lib/apt/lists/*
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools
# Install Android SDK command-line tools
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
curl -o /tmp/commandlinetools.zip -L https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \
unzip /tmp/commandlinetools.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \
rm /tmp/commandlinetools.zip && \
# Move nested dir to a stable layout
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/tools
# Accept licenses and install essential components
RUN yes | ${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager --licenses && \
${ANDROID_SDK_ROOT}/cmdline-tools/tools/bin/sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.0"
# Prepare workspace and copy source
WORKDIR /workspace
COPY . /workspace
# Point Gradle to the Android SDK
RUN echo "sdk.dir=${ANDROID_SDK_ROOT}" > local.properties
# Build the project (release variants)
RUN ./gradlew clean assembleRelease assembleGithubRelease
# Default command prints the build artifacts
CMD ["bash","-lc","echo Build complete. APKs are located at mastodon/build/outputs/apk/release and mastodon/build/outputs/apk/githubRelease && ls -la mastodon/build/outputs/apk/release mastodon/build/outputs/apk/githubRelease"]