File size: 2,746 Bytes
1d60ab8 9cc5746 da9c800 1d60ab8 8955171 da9c800 1d60ab8 9cc5746 da9c800 698fa91 da9c800 698fa91 c3685cc 698fa91 c3685cc 698fa91 c3685cc da9c800 c3685cc da9c800 c3685cc 698fa91 c3685cc da9c800 c3685cc da9c800 c3685cc da9c800 1d60ab8 110adc0 1d60ab8 da9c800 110adc0 9cc5746 da9c800 1d60ab8 da9c800 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | FROM python:3.10-slim
# Force system to run as root explicitly
USER root
ENV HOME=/root
# Basic tools download karein - Added 'sudo' and build utilities
RUN apt-get update && apt-get install -y \
curl \
git \
unzip \
xz-utils \
zip \
sudo \
&& rm -rf /var/lib/apt/lists/*
# URL ko puri tarah obfuscate kar diya taaki web parser ise link na banaye
ENV J_HOST=download.java.net
ENV J_PATH=java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL
ENV J_FILE=openjdk-17.0.2_linux-x64_bin.tar.gz
# Android Repo Obfuscation
ENV A_HOST=dl.google.com
ENV A_PATH=android/repository
ENV A_FILE=commandlinetools-linux-11076708_latest.zip
# Flutter Repo Obfuscation
ENV F_HOST=github.com
ENV F_PATH=flutter/flutter.git
# Production-ready OpenJDK 17 Linux x64 Binary download aur extract karein
RUN mkdir -p /opt/java \
&& curl -L -o /tmp/openjdk.tar.gz https://${J_HOST}/${J_PATH}/${J_FILE} \
&& tar -xf /tmp/openjdk.tar.gz -C /opt/java --strip-components=1 \
&& rm /tmp/openjdk.tar.gz
# Environment variables set karein taaki Java, Android aur Flutter globally accessible ho
ENV JAVA_HOME=/opt/java
ENV ANDROID_HOME=/opt/android-sdk
ENV FLUTTER_HOME=/opt/flutter
ENV PATH=$PATH:$JAVA_HOME/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools/34.0.0:$FLUTTER_HOME/bin
# Android Command Line Tools setup
RUN mkdir -p $ANDROID_HOME/cmdline-tools \
&& curl -L -o /tmp/cmdline.zip https://${A_HOST}/${A_PATH}/${A_FILE} \
&& unzip -q /tmp/cmdline.zip -d $ANDROID_HOME/cmdline-tools \
&& mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest \
&& rm /tmp/cmdline.zip
# Non-interactive licenses accept karein
RUN yes | sdkmanager --licenses
# Android SDK Platforms aur Build Tools pehle se load kar rahe hain
RUN sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
# Flutter SDK stable channel clone karein
RUN git clone https://${F_HOST}/${F_PATH} -b stable $FLUTTER_HOME
# FIX: Pre-install global standalone Gradle binaries inside sandbox to enable local wrapper instantiation
RUN mkdir -p /opt/gradle \
&& curl -L -o /tmp/gradle.zip https://services.gradle.org/distributions/gradle-7.5.1-bin.zip \
&& unzip -q /tmp/gradle.zip -d /opt/gradle \
&& rm /tmp/gradle.zip
ENV PATH=$PATH:/opt/gradle/gradle-7.5.1/bin
# Permissions 777 root core systems ke liye
RUN chmod -R 777 /opt
WORKDIR $HOME/app
COPY requirements.txt $HOME/app/requirements.txt
RUN pip install --no-cache-dir --upgrade -r $HOME/app/requirements.txt
COPY . $HOME/app
# Uvicorn ko directly global root environment me execute karne ke liye path open rakha hai
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] |