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:443fa1d45867e257d666bec66d909545168e44a5fb2bd88dc5c87c8cc75f10ccsha256:443fa1d45867e257d666bec66d909545168e44a5fb2bd88dc5c87c8cc75f10ccAbout 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
2026-05-16 09:25:50 -04:00
Versions (2)
View all
Container
1
OCI / Docker
linux/amd64
proprietary
2.3 GiB
latest
2026-05-16
sdk35-ndk27.2.12479018-rust1.83-2026q2
2026-05-16