| FROM ubuntu:22.04 |
|
|
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV ANDROID_SDK_ROOT=/opt/android-sdk |
| ENV ANDROID_HOME=/opt/android-sdk |
| ENV GRADLE_HOME=/opt/gradle/gradle-7.6 |
| ENV PATH="${PATH}:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/build-tools/34.0.0:${GRADLE_HOME}/bin" |
| ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 |
|
|
| RUN apt-get update && apt-get install -y \ |
| openjdk-17-jdk \ |
| python3 \ |
| python3-pip \ |
| wget \ |
| unzip \ |
| curl \ |
| git \ |
| zip \ |
| file \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \ |
| cd ${ANDROID_SDK_ROOT}/cmdline-tools && \ |
| wget -q https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip && \ |
| unzip -q cmdline-tools.zip && \ |
| mv cmdline-tools latest && \ |
| rm cmdline-tools.zip |
|
|
| RUN yes | sdkmanager --licenses > /dev/null 2>&1 || true |
| RUN sdkmanager "platforms;android-34" "build-tools;34.0.0" "build-tools;30.0.3" "platform-tools" |
|
|
| RUN mkdir -p /opt/gradle && \ |
| cd /opt/gradle && \ |
| wget -q https://services.gradle.org/distributions/gradle-7.6-bin.zip -O gradle.zip && \ |
| unzip -q gradle.zip && \ |
| rm gradle.zip |
|
|
| RUN mkdir -p /home/user/.gradle && \ |
| echo "org.gradle.jvmargs=-Xmx3072m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8" > /home/user/.gradle/gradle.properties && \ |
| echo "org.gradle.daemon=false" >> /home/user/.gradle/gradle.properties && \ |
| echo "org.gradle.parallel=true" >> /home/user/.gradle/gradle.properties && \ |
| echo "org.gradle.caching=true" >> /home/user/.gradle/gradle.properties && \ |
| echo "android.useAndroidX=true" >> /home/user/.gradle/gradle.properties |
|
|
| RUN useradd -m -u 1000 user && \ |
| chown -R user:user /opt/android-sdk && \ |
| chown -R user:user /opt/gradle && \ |
| chown -R user:user /home/user |
|
|
| WORKDIR /app |
|
|
| COPY requirements.txt . |
| RUN pip3 install --no-cache-dir -r requirements.txt |
|
|
| COPY . . |
|
|
| RUN chown -R user:user /app |
|
|
| USER user |
|
|
| EXPOSE 7860 |
|
|
| CMD ["python3", "app.py"] |
|
|