Dockerfile raw

   1  FROM debian:bookworm
   2  
   3  ENV DEBIAN_FRONTEND=noninteractive
   4  
   5  RUN apt-get update && \
   6      apt-get install -y openjdk-17-jdk-headless \
   7          cmake make m4 pkg-config python-is-python3 python3-venv \
   8          tcl gyp ninja-build bzip2 libffi-dev libsqlite3-dev binutils-dev clang lld \
   9          libssl-dev zlib1g-dev nodejs terser nasm git curl unzip wget patch \
  10          ca-certificates && \
  11      apt-get clean
  12  
  13  # Gradle - multiple versions for different projects
  14  RUN wget -q https://services.gradle.org/distributions/gradle-8.11.1-bin.zip -O /tmp/g1.zip && \
  15      unzip -q /tmp/g1.zip -d /opt && rm /tmp/g1.zip && \
  16      wget -q https://services.gradle.org/distributions/gradle-8.14.3-bin.zip -O /tmp/g2.zip && \
  17      unzip -q /tmp/g2.zip -d /opt && rm /tmp/g2.zip && \
  18      wget -q https://services.gradle.org/distributions/gradle-9.2.1-bin.zip -O /tmp/g3.zip && \
  19      unzip -q /tmp/g3.zip -d /opt && rm /tmp/g3.zip && \
  20      ln -s /opt/gradle-8.11.1/bin/gradle /usr/local/bin/gradle
  21  
  22  # Rust
  23  RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.93.0 && \
  24      . /root/.cargo/env && \
  25      rustup target add aarch64-linux-android && \
  26      cargo install --force --vers 0.29.2 cbindgen
  27  
  28  ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
  29  ENV ANDROID_HOME=/opt/android-sdk
  30  ENV ANDROID_SDK=/opt/android-sdk
  31  ENV PATH="/root/.cargo/bin:${ANDROID_HOME}/cmdline-tools/latest/bin:${PATH}"
  32  
  33  # Android SDK
  34  RUN mkdir -p ${ANDROID_HOME}/cmdline-tools && \
  35      cd /tmp && \
  36      wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip && \
  37      unzip -q commandlinetools-linux-11076708_latest.zip && \
  38      mv cmdline-tools ${ANDROID_HOME}/cmdline-tools/latest && \
  39      rm commandlinetools-linux-11076708_latest.zip && \
  40      yes | sdkmanager --licenses > /dev/null 2>&1 && \
  41      sdkmanager 'build-tools;36.1.0' 'platforms;android-36.1' 'ndk;29.0.14206865'
  42  
  43  ENV ANDROID_NDK=${ANDROID_HOME}/ndk/29.0.14206865
  44  
  45  WORKDIR /build
  46