yash184 commited on
Commit
e081d43
·
verified ·
1 Parent(s): c64b932

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +44 -10
Dockerfile CHANGED
@@ -1,16 +1,50 @@
1
- FROM python:3.11-slim
2
-
3
- WORKDIR /app
4
 
 
5
  RUN apt-get update && apt-get install -y --no-install-recommends \
6
- build-essential \
7
- && rm -rf /var/lib/apt/lists/*
 
8
 
9
- COPY requirements.txt .
10
- RUN pip install --no-cache-dir -r requirements.txt
 
11
 
12
- COPY app.py .
 
 
 
 
 
13
 
14
- EXPOSE 7860
 
 
 
 
 
 
 
 
 
 
15
 
16
- CMD ["python", "app.py"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM eclipse-temurin:17-jdk-jammy
 
 
2
 
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
  RUN apt-get update && apt-get install -y --no-install-recommends \
5
+ python3 python3-pip unzip curl ca-certificates git \
6
+ && rm -rf /var/lib/apt/lists/* \
7
+ && pip3 install --no-cache-dir flask
8
 
9
+ ENV ANDROID_HOME=/opt/android-sdk \
10
+ ANDROID_SDK_ROOT=/opt/android-sdk \
11
+ PATH=/opt/gradle/bin:/opt/android-sdk/cmdline-tools/latest/bin:$PATH
12
 
13
+ # Android command-line tools
14
+ RUN mkdir -p /opt/android-sdk/cmdline-tools && cd /tmp \
15
+ && curl -fsSL -o ct.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip \
16
+ && unzip -q ct.zip \
17
+ && mv cmdline-tools /opt/android-sdk/cmdline-tools/latest \
18
+ && rm ct.zip
19
 
20
+ # Gradle 9.3.1 (minimum required by AGP 9.1.x)
21
+ RUN cd /tmp \
22
+ && curl -fsSL -o g.zip https://services.gradle.org/distributions/gradle-9.3.1-bin.zip \
23
+ && unzip -q g.zip -d /opt \
24
+ && mv /opt/gradle-9.3.1 /opt/gradle \
25
+ && rm g.zip
26
+
27
+ # SDK packages (android-36.1 is optional; AGP can also fetch it itself)
28
+ RUN yes | sdkmanager --licenses > /dev/null \
29
+ && sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" \
30
+ && (sdkmanager "platforms;android-36.1" || true)
31
 
32
+ # HF Spaces runs the container as uid 1000
33
+ RUN useradd -m -u 1000 user && chown -R user:user /opt/android-sdk
34
+ USER user
35
+ ENV GRADLE_USER_HOME=/home/user/.gradle
36
+ WORKDIR /home/user/app
37
+ # Optional warm-up: put your project zip in the Space repo as warmup.zip.
38
+ # It is built once while the image is created, so every dependency (AGP, Kotlin,
39
+ # Compose, Room...) is already cached and later builds skip the downloads.
40
+ COPY --chown=user app.py warmup.zi[p] ./
41
+ RUN if [ -f warmup.zip ]; then \
42
+ mkdir -p /tmp/warm && unzip -q warmup.zip -d /tmp/warm \
43
+ && R="$(dirname "$(find /tmp/warm -name 'settings.gradle*' | head -1)")" \
44
+ && cd "$R" && echo "sdk.dir=$ANDROID_HOME" > local.properties \
45
+ && gradle assembleDebug --console=plain --build-cache --no-configuration-cache \
46
+ -Dorg.gradle.jvmargs=-Xmx3g || true; \
47
+ fi; rm -rf /tmp/warm /home/user/app/warmup.zip
48
+
49
+ EXPOSE 7860
50
+ CMD ["python3", "app.py"]