Skip to content

RedMadRobot/android-docker-images

Repository files navigation

red_mad_robot Android Docker Images

Set of docker images used by red_mad_robot Android team. All images are published in GitHub Container Registry.

Note

All images versioned using prefix with date when this image was built [tag]-YYYYMMDD. It is recommended to use image tags with date prefix to keep build stable and to not break it on images updates. All changes are listed in CHANGELOG.


android-sdk

Note

You should always align build-tools and compile SDK in your project to match the versions used in image, otherwise Android Gradle Plugin will download build-tools and platform packages in each CI build.

android {
    buildToolsVersion = "34.0.0"
    compileSdk = [x]
}

android-sdk:base

ghcr.io/redmadrobot/android/android-sdk:base

Base Android image. All other android images are built on top of this image.

Base image: eclipse-temurin:17-jdk-jammy
Platforms: linux/amd64, linux/arm64
Packages:

  • sdkmanager:
    • cmdline-tools 12.0
    • build-tools 34.0.0
    • platform-tools 35.0.0
  • python3 3.10
  • git
  • zip, unzip
Deprecated tags
base-jdk11

android-sdk:[x]

ghcr.io/redmadrobot/android/android-sdk:[tag]

Image with preinstalled SDK. It should match your compileSdk in project build script.

Tags:

  • 34 (Android 14)
  • 33 (Android 13)
  • 32 (Android 12L)
Deprecated tags
- 33-jdk11
- 32-jdk11
- 31, 31-jdk11
- 30, 30-jdk11

android-sdk:[x]-ndk

ghcr.io/redmadrobot/android/android-sdk:[x]-ndk
ghcr.io/redmadrobot/android/android-sdk:[x]-ndk-[y]

Where [x] is SDK version and [y] is NDK version (optionally).

Base image: android-sdk:[x]
NDK version: 26.2.11394342

Remember to specify NDK version in android block:

android {
    ndkVersion = "26.2.11394342"
}

Tags:

  • 34-ndk, 33-ndk-26.2.11394342
  • 33-ndk, 33-ndk-26.2.11394342
  • 32-ndk, 32-ndk-26.2.11394342
Deprecated tags
- 33-jdk11-ndk, 33-jdk11-ndk-25.1.8937393
- 33-ndk-25.1.8937393
- 32-jdk11-ndk, 32-jdk11-ndk-25.1.8937393
- 32-ndk-25.1.8937393, 32-ndk-22.1.7171670
- 31-jdk11-ndk, 31-jdk11-ndk-25.1.8937393
- 31-ndk, 31-ndk-25.1.8937393, 31-ndk-22.1.7171670
- 30-jdk11-ndk, 30-jdk11-ndk-25.1.8937393
- 30-ndk, 30-ndk-25.1.8937393, 30-ndk-22.1.7171670

ruby:[x]

ghcr.io/redmadrobot/android/ruby:[tag]

Ruby image with some additions to work with Fastlane and Danger.

Base image: ruby:[x]-slim-bookworm
Platforms: linux/amd64
Packages:

  • Bundler 2.5.6
  • Firebase CLI 13.3.1

Tags:

  • 3.3, latest
  • 3.2
  • 3.1
Deprecated tags
- 3.0
- 2.7

Experimental images

Warning

Use these images at your own risk.

android-emu:[x]

ghcr.io/redmadrobot/android/android-emu:30

Base image: android-sdk:30

Scripts:

  • start-emulator - a script to start the emulator.
    Emulator will be named as EMU_X, where X - is an SDK version (for, API 30 name will be EMU_30).
  • prepare-snapshot - a script to save a snapshot.
    This script will create a snapshot with the name from the environment variable DEFAULT_SNAPSHOT (DEFAULT_SNAPSHOT="ci" by default).
    To run the emulator with DEFAULT_SNAPSHOT set SNAPSHOT_ENABLED="true" (by default snapshot is disabled):

    SNAPSHOT_ENABLED="true" start-emulator

Binaries:

  • Allurectl - command line wrapper of Allure TestOps' API allowing you to upload the test results in real time from a build job, and managing entities on Allure TestOps side (test cases, launches, projects).

danger-kotlin:[x]

ghcr.io/redmadrobot/android/danger-kotlin:1.0.0
ghcr.io/redmadrobot/android/danger-kotlin:1.1.0

Danger-kotlin docker image.

  • gradle: 5.6.2
  • jdk: 8
  • kotlin-compiler: 1.5.0
  • danger-kotlin: [x]

Images building

Images use Dockerfile frontend 1.4+ so they are meant to be built using BuildKit and buildx.

If you want to build multi-platform images it is recommended to enable containerd image store. Without this option you will not be able to publish images to local store.

License

MIT