File size: 2,424 Bytes
1d60ab8 9cc5746 42f9a0f 8c4406e b949a54 1d60ab8 8955171 bad9544 1d60ab8 9cc5746 b949a54 7fe3401 e670a46 b949a54 1318e22 b949a54 1318e22 b949a54 698fa91 7fe3401 698fa91 b949a54 698fa91 c3685cc 698fa91 c3685cc b949a54 c3685cc 1318e22 c3685cc b949a54 c3685cc b949a54 c3685cc b949a54 1318e22 c3685cc b949a54 c3685cc 110adc0 1d60ab8 8c4406e b949a54 9cc5746 b949a54 1d60ab8 b949a54 bad9544 | 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 | FROM python:3.10-slim
# Force system to run as root explicitly
USER root
ENV HOME=/root
# Basic tools download karein - Added 'sudo' package as requested to avoid command exit codes
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
# 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"]
|