Skip to content

Instantly share code, notes, and snippets.

@faywong
Last active May 6, 2024 15:37
Show Gist options
  • Save faywong/8fc100bc117910df917c7c988db625b7 to your computer and use it in GitHub Desktop.
Save faywong/8fc100bc117910df917c7c988db625b7 to your computer and use it in GitHub Desktop.
android ci docker
# docker buildx build . -t sid/android_ci
# docker push registry.gitlab.com/szndev/ci-droid
FROM --platform=linux/amd64 openjdk:17-slim
ENV ANDROID_SDK_TOOLS 9477386
ENV ANDROID_SDK_URL https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
ENV ANDROID_BUILD_TOOLS_VERSION 33.0.0
ENV NDK_VERSION 25.2.9519653
ENV ANDROID_HOME /usr/local/android-sdk-linux
ENV ANDROID_VERSION 33
ENV GRADLE_HOME=/opt/gradle/gradle-8.6
ENV PATH $PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/bin:$GRADLE_HOME/bin
# Set user to root for necessary permissions
USER root
# Install required packages
RUN apt-get update && \
apt-get install -y --no-install-recommends unzip curl vim python3 && \
mkdir "$ANDROID_HOME" .android && \
cd "$ANDROID_HOME" && \
curl -o sdk.zip $ANDROID_SDK_URL && \
unzip sdk.zip && \
rm sdk.zip && \
# Download gradle 8.6
curl -o gradle.bin.zip https://mirrors.cloud.tencent.com/gradle/gradle-8.6-bin.zip && \
unzip -d /opt/gradle gradle.bin.zip && \
# Download Android SDK
yes | sdkmanager --licenses --sdk_root=$ANDROID_HOME && \
sdkmanager --update --sdk_root=$ANDROID_HOME && \
sdkmanager --sdk_root=$ANDROID_HOME "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"platforms;android-${ANDROID_VERSION}" \
"ndk;${NDK_VERSION}"\
"platform-tools" \
"extras;android;m2repository" \
"extras;google;m2repository" && \
# Install Fastlane
apt-get install --no-install-recommends -y --allow-unauthenticated build-essential git ruby-full && \
gem install rake && \
gem install fastlane && \
gem install bundler && \
gem install screengrab && \
# Clean up
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
apt-get autoremove -y && \
apt-get clean
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment