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"]