ci-images/tauri-android (sha256:443fa1d45867e257d666bec66d909545168e44a5fb2bd88dc5c87c8cc75f10cc)

Published 2026-05-16 09:25:50 -04:00 by rcheung

Installation

docker pull git.robin.mba/rcheung/ci-images/tauri-android@sha256:443fa1d45867e257d666bec66d909545168e44a5fb2bd88dc5c87c8cc75f10cc
sha256:443fa1d45867e257d666bec66d909545168e44a5fb2bd88dc5c87c8cc75f10cc

About this package

Over-installed Android + Tauri 2 toolchain (Robin's AI World, CC5)

Image layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=24.04
ADD file:aaeb92d3288093ff43a69d19f9133475372ca003b6de902066a2d4641eec2456 in /
CMD ["/bin/bash"]
LABEL maintainer=thyrlian@gmail.com
ARG JDK_VERSION=17
RUN |1 JDK_VERSION=17 /bin/sh -c apt-get update && apt-get dist-upgrade -y && apt-get install -y --no-install-recommends openjdk-${JDK_VERSION}-jdk && apt-get install -y --no-install-recommends git wget unzip && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit
ARG GRADLE_VERSION=8.10.2
ARG GRADLE_DIST=bin
RUN |3 JDK_VERSION=17 GRADLE_VERSION=8.10.2 GRADLE_DIST=bin /bin/sh -c cd /opt && wget -q https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-${GRADLE_DIST}.zip && unzip gradle*.zip && ls -d */ | sed 's/\/*$//g' | xargs -I{} mv {} gradle && rm gradle*.zip # buildkit
ARG KOTLIN_VERSION=2.0.20
RUN |4 JDK_VERSION=17 GRADLE_VERSION=8.10.2 GRADLE_DIST=bin KOTLIN_VERSION=2.0.20 /bin/sh -c cd /opt && wget -q https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip && unzip *kotlin*.zip && rm *kotlin*.zip # buildkit
ARG ANDROID_SDK_VERSION=11076708
ENV ANDROID_HOME=/opt/android-sdk
RUN |5 JDK_VERSION=17 GRADLE_VERSION=8.10.2 GRADLE_DIST=bin KOTLIN_VERSION=2.0.20 ANDROID_SDK_VERSION=11076708 /bin/sh -c mkdir -p ${ANDROID_HOME}/cmdline-tools && wget -q https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && unzip *tools*linux*.zip -d ${ANDROID_HOME}/cmdline-tools && mv ${ANDROID_HOME}/cmdline-tools/cmdline-tools ${ANDROID_HOME}/cmdline-tools/tools && rm *tools*linux*.zip # buildkit
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV GRADLE_HOME=/opt/gradle
ENV KOTLIN_HOME=/opt/kotlinc
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/gradle/bin:/opt/kotlinc/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/cmdline-tools/tools/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/emulator
ENV LD_LIBRARY_PATH=/opt/android-sdk/emulator/lib64:/opt/android-sdk/emulator/lib64/qt/lib
ENV QTWEBENGINE_DISABLE_SANDBOX=1
ADD license-accepter.sh /opt/ # buildkit
RUN |5 JDK_VERSION=17 GRADLE_VERSION=8.10.2 GRADLE_DIST=bin KOTLIN_VERSION=2.0.20 ANDROID_SDK_VERSION=11076708 /bin/sh -c chmod +x /opt/license-accepter.sh && /opt/license-accepter.sh $ANDROID_HOME # buildkit
EXPOSE map[5037/tcp:{}]
EXPOSE map[22/tcp:{}]
ADD sshd-banner /etc/ssh/ # buildkit
ADD accredited-keys /tmp/ # buildkit
RUN |5 JDK_VERSION=17 GRADLE_VERSION=8.10.2 GRADLE_DIST=bin KOTLIN_VERSION=2.0.20 ANDROID_SDK_VERSION=11076708 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends openssh-server supervisor locales && mkdir -p /var/run/sshd /var/log/supervisord && locale-gen en en_US en_US.UTF-8 && apt-get remove -y locales && apt-get autoremove -y && apt-get clean && rm -rf /var/lib/apt/lists/* && FILE_SSHD_CONFIG="/etc/ssh/sshd_config" && echo "\nBanner /etc/ssh/sshd-banner" >> $FILE_SSHD_CONFIG && echo "\nPermitUserEnvironment=yes" >> $FILE_SSHD_CONFIG && ssh-keygen -q -N "" -f /root/.ssh/id_rsa && FILE_SSH_ENV="/root/.ssh/environment" && touch $FILE_SSH_ENV && chmod 600 $FILE_SSH_ENV && printenv | grep "JAVA_HOME\|GRADLE_HOME\|KOTLIN_HOME\|ANDROID_HOME\|LD_LIBRARY_PATH\|PATH" >> $FILE_SSH_ENV && echo "\nauth required pam_env.so envfile=$FILE_SSH_ENV" >> /etc/pam.d/sshd && FILE_AUTH_KEYS="/root/.ssh/authorized_keys" && touch $FILE_AUTH_KEYS && chmod 600 $FILE_AUTH_KEYS && for file in /tmp/*.pub; do if [ -f "$file" ]; then echo "\n" >> $FILE_AUTH_KEYS && cat $file >> $FILE_AUTH_KEYS && echo "\n" >> $FILE_AUTH_KEYS; fi; done && (rm /tmp/*.pub 2> /dev/null || true) # buildkit
ADD supervisord.conf /etc/supervisor/conf.d/ # buildkit
CMD ["/usr/bin/supervisord"]
ENV DEBIAN_FRONTEND=noninteractive RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo ANDROID_HOME=/opt/android-sdk ANDROID_SDK_ROOT=/opt/android-sdk PATH=/usr/local/cargo/bin:/usr/local/rustup/bin:/opt/android-sdk/cmdline-tools/tools/bin:/opt/android-sdk/cmdline-tools/latest/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/build-tools/35.0.0:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV ANDROID_NDK_HOME=/opt/android-sdk/ndk/27.2.12479018 NDK_HOME=/opt/android-sdk/ndk/27.2.12479018 ANDROID_NDK_ROOT=/opt/android-sdk/ndk/27.2.12479018
RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends build-essential pkg-config cmake ninja-build curl wget ca-certificates gnupg git jq unzip xz-utils zstd apksigner zipalign libssl-dev libudev-dev file inkscape imagemagick librsvg2-bin yamllint strace lsof procps && rm -rf /var/lib/apt/lists/* # buildkit
RUN /bin/sh -c curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs && corepack enable && corepack prepare yarn@4.5.3 --activate && corepack prepare pnpm@9.15.0 --activate && curl -fsSL https://bun.sh/install | bash && ln -sf /root/.bun/bin/bun /usr/local/bin/bun && node --version && yarn --version && pnpm --version && bun --version # buildkit
ARG RUST_VERSION=1.83.0
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${RUST_VERSION} --profile minimal --component rustfmt --component clippy --component rust-src && rustup target add aarch64-linux-android x86_64-linux-android armv7-linux-androideabi i686-linux-android && rustc --version # buildkit
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c cargo install --locked tauri-cli@2.1.0 && cargo install --locked cargo-ndk@3.5.4 && cargo install --locked cargo-edit@0.13.0 # buildkit
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c BUNDLETOOL_VERSION=1.17.2 && curl -fsSL -o /usr/local/bin/bundletool.jar "https://github.com/google/bundletool/releases/download/${BUNDLETOOL_VERSION}/bundletool-all-${BUNDLETOOL_VERSION}.jar" && printf '#!/usr/bin/env bash\nexec java -jar /usr/local/bin/bundletool.jar "$@"\n' > /usr/local/bin/bundletool && chmod +x /usr/local/bin/bundletool # buildkit
ENV GRADLE_USER_HOME=/opt/gradle-cache
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c mkdir -p ${GRADLE_USER_HOME} # buildkit
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c yes | sdkmanager --licenses >/dev/null 2>&1 || true && sdkmanager "platforms;android-35" "build-tools;35.0.0" "ndk;27.2.12479018" "platform-tools" "cmdline-tools;latest" # buildkit
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c test -d ${ANDROID_HOME}/platforms/android-35 && test -d ${ANDROID_NDK_HOME} && echo "SDK 35 + NDK 27.2.12479018 confirmed at ${ANDROID_HOME}" # buildkit
RUN |1 RUST_VERSION=1.83.0 /bin/sh -c { echo "=== tauri-android baked image manifest ===" ; echo "Build date: $(date -uIs)" ; echo "ANDROID_HOME: ${ANDROID_HOME}" ; echo "ANDROID_NDK_HOME: ${ANDROID_NDK_HOME}" ; echo "Rust: $(rustc --version)" ; echo "Cargo: $(cargo --version)" ; echo "Node: $(node --version)" ; echo "Yarn: $(yarn --version)" ; echo "pnpm: $(pnpm --version)" ; echo "Bun: $(bun --version)" ; echo "tauri-cli: $(cargo tauri --version 2>&1 || true)" ; echo "bundletool: $(bundletool version 2>&1 || true)" ; echo "apksigner: $(apksigner --version 2>&1 || true)" ; ls ${ANDROID_HOME}/build-tools ; ls ${ANDROID_HOME}/ndk ; } > /etc/baked-image-manifest.txt # buildkit
LABEL org.opencontainers.image.title=tauri-android CI image org.opencontainers.image.description=Over-installed Android + Tauri 2 toolchain (Robin's AI World, CC5) org.opencontainers.image.source=https://git.robin.mba/admin/CI/dockerfiles/tauri-android/Dockerfile org.opencontainers.image.licenses=proprietary org.robin-ai-world.convention=CC5

Labels

Key Value
maintainer thyrlian@gmail.com
org.opencontainers.image.description Over-installed Android + Tauri 2 toolchain (Robin's AI World, CC5)
org.opencontainers.image.licenses proprietary
org.opencontainers.image.ref.name ubuntu
org.opencontainers.image.source https://git.robin.mba/admin/CI/dockerfiles/tauri-android/Dockerfile
org.opencontainers.image.title tauri-android CI image
org.opencontainers.image.version 24.04
org.robin-ai-world.convention CC5
Details
Container
2026-05-16 09:25:50 -04:00
1
OCI / Docker
linux/amd64
proprietary
2.3 GiB
Versions (2) View all