FROM ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 ENV ANDROID_SDK_ROOT=/opt/android-sdk ENV KOTLIN_VERSION=1.9.24 ENV PATH="${ANDROID_SDK_ROOT}/build-tools/33.0.2:${JAVA_HOME}/bin:/opt/kotlinc/bin:${PATH}" # ── System deps ───────────────────────────────────────────────────────────── RUN apt-get update && apt-get install -y \ openjdk-17-jdk wget unzip curl python3 python3-pip \ && rm -rf /var/lib/apt/lists/* # ── Android SDK command-line tools ────────────────────────────────────────── RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \ wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \ -O /tmp/cmdtools.zip && \ unzip -q /tmp/cmdtools.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \ mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools \ ${ANDROID_SDK_ROOT}/cmdline-tools/latest && \ rm /tmp/cmdtools.zip ENV PATH="${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${PATH}" # ── SDK components: d8 (build-tools) + android.jar (platforms) ────────────── RUN yes | sdkmanager --licenses > /dev/null 2>&1 && \ sdkmanager "build-tools;33.0.2" "platforms;android-33" # ── Kotlin compiler (kotlinc) ──────────────────────────────────────────────── # Официальный релиз с GitHub — устанавливается в /opt/kotlinc. # kotlinc компилирует .kt (и .kt вместе с .java) напрямую в JVM bytecode, # который дальше проходит через тот же d8, что и обычные .class файлы. RUN wget -q "https://github.com/JetBrains/kotlin/releases/download/v${KOTLIN_VERSION}/kotlin-compiler-${KOTLIN_VERSION}.zip" \ -O /tmp/kotlinc.zip && \ unzip -q /tmp/kotlinc.zip -d /opt && \ rm /tmp/kotlinc.zip && \ chmod +x /opt/kotlinc/bin/kotlinc && \ chmod -R 755 /opt/kotlinc # ── Download pre-installed stub JARs ──────────────────────────────────────── RUN mkdir -p /opt/default-stubs && \ wget -q "https://huggingface.co/buckets/coidada/ForAction/resolve/jna-5.13.0.jar?download=true" -O /opt/default-stubs/jna-5.13.0.jar && \ wget -q "https://huggingface.co/buckets/coidada/ForAction/resolve/android.jar?download=true" -O /opt/default-stubs/android.jar && \ wget -q "https://huggingface.co/buckets/coidada/ForAction/resolve/app_stubs.jar?download=true" -O /opt/default-stubs/app_stubs.jar && \ chmod -R 755 /opt/default-stubs # ── Python deps ───────────────────────────────────────────────────────────── RUN pip3 install gradio # ── App ───────────────────────────────────────────────────────────────────── RUN useradd -m -u 1000 user WORKDIR /home/user/app COPY --chown=user:user app.py . USER user EXPOSE 7860 CMD ["python3", "app.py"]