Spracherkennung für: vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
# Dockerfile for an Android compilation image, based on Debian Trixie Slim.
#
# NOTE: This docker image automatically accepts the Android SDK licenses. It may only be used
# from a wrapper script that explicitly asks the user to accept the license!
#
# Arguments:
#
# - `JAVA_VERSION`: Set this to the desired Java version (e.g. 21)
# - `SDK_VERSION`: Set this to the desired Android SDK version (e.g. `35`)
# - `NDK_VERSION`: Set this to the desired Android NDK version (e.g. `25.2.9519653`)
# - `BUILD_TOOLS_VERSION`: Set this to the desired build tools version (e.g. `35.0.0`)
# - `RUST_VERSION`: Set this to the desired Rust version (e.g. `1.80`)
FROM docker.io/debian:trixie-slim
# Arguments
ARG JAVA_VERSION=21
ARG SDK_VERSION=35
ARG BUILD_TOOLS_VERSION=35.0.0
ARG NDK_VERSION=28.2.13676358
ARG RUST_VERSION
# Install dependencies
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -q \
&& apt-get -y -q install --no-install-recommends \
build-essential file "openjdk-${JAVA_VERSION}-jdk" git wget unzip rsync vim-nox cpu-chec
ker curl python3 protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
# Download Android command line tools
RUN mkdir -p /opt/android/cmdline-tools \
&& cd /opt/android/cmdline-tools \
&& wget https://dl.google.com/android/repository/commandlinetools-linux-6609375_latest.zip \
&& unzip commandlinetools-linux-6609375_latest.zip \
&& rm commandlinetools-linux-6609375_latest.zip
ENV ANDROID_SDK_ROOT=/opt/android
# Install Android SDK
RUN yes Y | /opt/android/cmdline-tools/tools/bin/sdkmanager --licenses
RUN /opt/android/cmdline-tools/tools/bin/sdkmanager --install \
"tools" \
"platform-tools" \
"platforms;android-${SDK_VERSION}" \
"ndk;${NDK_VERSION}" \
"build-tools;${BUILD_TOOLS_VERSION}" \
"emulator"
# The location of the rustup-init script to install rust (rustup, rustc, cargo)
ENV RUSTUP_INIT=/rust/rustup-init.sh
# Set location to install rust
ENV RUSTUP_HOME=/rust/rustup
ENV CARGO_HOME=/rust/cargo
# Copy the rust installation script
COPY rustup-init.sh $RUSTUP_INIT
# Install Rust
RUN $RUSTUP_INIT -y --default-toolchain $RUST_VERSION
ENV PATH="$CARGO_HOME/bin:$PATH"
RUN rustup target add x86_64-linux-android \
&& rustup target add i686-linux-android \
&& rustup target add armv7-linux-androideabi \
&& rustup target add aarch64-linux-android
# Allow anyone to write to the cargo directory
RUN chmod a+w $CARGO_HOME
# Set env variables
ENV PATH="$ANDROID_SDK_ROOT/cmdline-tools/tools/bin:$ANDROID_SDK_ROOT/platform-tools:$PATH"
# Create users with typical UIDs to avoid problems with Docker when remapping the UID
RUN chmod a+w /home && for newuid in $(seq 1000 1010); do useradd -M -d /home -u $newuid -s /bin/bash "user$newuid"; done
# Create cache directories in order to be able to control the permissions of mounted volumes
RUN mkdir -p /code/build /code/app/.cxx \
&& chmod 777 /code/build /code/app/.cxx