AutoStub-gen / Dockerfile
coidada's picture
Update Dockerfile
d878748 verified
Raw History Blame Contribute Delete
3.49 kB
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"]