FROM rust:trixie ARG ANDROID_CLI_TOOLS_VERSION=13114758 # Install android rust toolchains RUN rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android # Install debian dependencies RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ nodejs \ ca-certificates \ curl \ unzip \ default-jdk # Install android commandline tools (required to install the sdk) RUN cd /tmp && \ curl -o commandlinetools-linux.zip "https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_CLI_TOOLS_VERSION}_latest.zip" && \ unzip commandlinetools-linux.zip && \ mkdir -p /opt/android-tools/cmdline-tools && \ cp -r cmdline-tools /opt/android-tools/cmdline-tools/latest # Install required android tools RUN yes | /opt/android-tools/cmdline-tools/latest/bin/sdkmanager --install "platform-tools" "platforms;android-36.1" "build-tools;36.1.0" "ndk;29.0.14206865" "cmake;3.31.6" # Install cargo binstall RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash # Install dioxus-cli RUN cargo binstall dioxus-cli@0.7.2 # Install bindgen-cli RUN cargo binstall bindgen-cli # Set required env vars ENV ANDROID_HOME="/opt/android-tools/" ENV NDK_HOME="$ANDROID_HOME/ndk/29.0.14206865" ENV PATH="$PATH:$ANDROID_HOME/platform-tools" ENV PATH="$PATH:/opt/android-tools/cmake/3.31.6/bin/" ENV LLVM_CONFIG_PATH="/opt/android-tools/ndk/29.0.14206865/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-config"