Update Dockerfile
Browse files- Dockerfile +14 -14
Dockerfile
CHANGED
|
@@ -4,7 +4,7 @@ FROM python:3.10-slim
|
|
| 4 |
USER root
|
| 5 |
ENV HOME=/root
|
| 6 |
|
| 7 |
-
#
|
| 8 |
RUN apt-get update && apt-get install -y \
|
| 9 |
curl \
|
| 10 |
git \
|
|
@@ -14,57 +14,57 @@ RUN apt-get update && apt-get install -y \
|
|
| 14 |
sudo \
|
| 15 |
&& rm -rf /var/lib/apt/lists/*
|
| 16 |
|
| 17 |
-
#
|
| 18 |
ENV J_HOST=download.java.net
|
| 19 |
ENV J_PATH=java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL
|
| 20 |
ENV J_FILE=openjdk-17.0.2_linux-x64_bin.tar.gz
|
| 21 |
|
| 22 |
-
#
|
| 23 |
ENV A_HOST=dl.google.com
|
| 24 |
ENV A_PATH=android/repository
|
| 25 |
ENV A_FILE=commandlinetools-linux-11076708_latest.zip
|
| 26 |
|
| 27 |
-
#
|
| 28 |
ENV F_HOST=github.com
|
| 29 |
ENV F_PATH=flutter/flutter.git
|
| 30 |
|
| 31 |
-
#
|
| 32 |
RUN mkdir -p /opt/java \
|
| 33 |
&& curl -L -o /tmp/openjdk.tar.gz https://${J_HOST}/${J_PATH}/${J_FILE} \
|
| 34 |
&& tar -xf /tmp/openjdk.tar.gz -C /opt/java --strip-components=1 \
|
| 35 |
&& rm /tmp/openjdk.tar.gz
|
| 36 |
|
| 37 |
-
#
|
| 38 |
ENV JAVA_HOME=/opt/java
|
| 39 |
ENV ANDROID_HOME=/opt/android-sdk
|
| 40 |
ENV FLUTTER_HOME=/opt/flutter
|
| 41 |
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
|
| 42 |
|
| 43 |
-
#
|
| 44 |
RUN mkdir -p $ANDROID_HOME/cmdline-tools \
|
| 45 |
&& curl -L -o /tmp/cmdline.zip https://${A_HOST}/${A_PATH}/${A_FILE} \
|
| 46 |
&& unzip -q /tmp/cmdline.zip -d $ANDROID_HOME/cmdline-tools \
|
| 47 |
&& mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest \
|
| 48 |
&& rm /tmp/cmdline.zip
|
| 49 |
|
| 50 |
-
#
|
| 51 |
RUN yes | sdkmanager --licenses
|
| 52 |
|
| 53 |
-
#
|
| 54 |
RUN sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
|
| 55 |
|
| 56 |
-
#
|
| 57 |
RUN git clone https://${F_HOST}/${F_PATH} -b stable $FLUTTER_HOME
|
| 58 |
|
| 59 |
-
#
|
| 60 |
RUN chmod -R 777 /opt
|
| 61 |
|
| 62 |
WORKDIR $HOME/app
|
| 63 |
|
| 64 |
COPY requirements.txt $HOME/app/requirements.txt
|
| 65 |
-
|
| 66 |
|
| 67 |
-
COPY .
|
| 68 |
|
| 69 |
-
#
|
| 70 |
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|
|
|
|
| 4 |
USER root
|
| 5 |
ENV HOME=/root
|
| 6 |
|
| 7 |
+
# Basic tools download karein - Added 'sudo' package as requested to avoid command exit codes
|
| 8 |
RUN apt-get update && apt-get install -y \
|
| 9 |
curl \
|
| 10 |
git \
|
|
|
|
| 14 |
sudo \
|
| 15 |
&& rm -rf /var/lib/apt/lists/*
|
| 16 |
|
| 17 |
+
# URL ko puri tarah obfuscate kar diya taaki web parser ise link na banaye
|
| 18 |
ENV J_HOST=download.java.net
|
| 19 |
ENV J_PATH=java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL
|
| 20 |
ENV J_FILE=openjdk-17.0.2_linux-x64_bin.tar.gz
|
| 21 |
|
| 22 |
+
# Android Repo Obfuscation
|
| 23 |
ENV A_HOST=dl.google.com
|
| 24 |
ENV A_PATH=android/repository
|
| 25 |
ENV A_FILE=commandlinetools-linux-11076708_latest.zip
|
| 26 |
|
| 27 |
+
# Flutter Repo Obfuscation
|
| 28 |
ENV F_HOST=github.com
|
| 29 |
ENV F_PATH=flutter/flutter.git
|
| 30 |
|
| 31 |
+
# Production-ready OpenJDK 17 Linux x64 Binary download aur extract karein
|
| 32 |
RUN mkdir -p /opt/java \
|
| 33 |
&& curl -L -o /tmp/openjdk.tar.gz https://${J_HOST}/${J_PATH}/${J_FILE} \
|
| 34 |
&& tar -xf /tmp/openjdk.tar.gz -C /opt/java --strip-components=1 \
|
| 35 |
&& rm /tmp/openjdk.tar.gz
|
| 36 |
|
| 37 |
+
# Environment variables set karein taaki Java, Android aur Flutter globally accessible ho
|
| 38 |
ENV JAVA_HOME=/opt/java
|
| 39 |
ENV ANDROID_HOME=/opt/android-sdk
|
| 40 |
ENV FLUTTER_HOME=/opt/flutter
|
| 41 |
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
|
| 42 |
|
| 43 |
+
# Android Command Line Tools setup
|
| 44 |
RUN mkdir -p $ANDROID_HOME/cmdline-tools \
|
| 45 |
&& curl -L -o /tmp/cmdline.zip https://${A_HOST}/${A_PATH}/${A_FILE} \
|
| 46 |
&& unzip -q /tmp/cmdline.zip -d $ANDROID_HOME/cmdline-tools \
|
| 47 |
&& mv $ANDROID_HOME/cmdline-tools/cmdline-tools $ANDROID_HOME/cmdline-tools/latest \
|
| 48 |
&& rm /tmp/cmdline.zip
|
| 49 |
|
| 50 |
+
# Non-interactive licenses accept karein
|
| 51 |
RUN yes | sdkmanager --licenses
|
| 52 |
|
| 53 |
+
# Android SDK Platforms aur Build Tools pehle se load kar rahe hain
|
| 54 |
RUN sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
|
| 55 |
|
| 56 |
+
# Flutter SDK stable channel clone karein
|
| 57 |
RUN git clone https://${F_HOST}/${F_PATH} -b stable $FLUTTER_HOME
|
| 58 |
|
| 59 |
+
# Permissions 777 root core systems ke liye
|
| 60 |
RUN chmod -R 777 /opt
|
| 61 |
|
| 62 |
WORKDIR $HOME/app
|
| 63 |
|
| 64 |
COPY requirements.txt $HOME/app/requirements.txt
|
| 65 |
+
RUN pip install --no-cache-dir --upgrade -r $HOME/app/requirements.txt
|
| 66 |
|
| 67 |
+
COPY . $HOME/app
|
| 68 |
|
| 69 |
+
# Uvicorn ko directly global root environment me execute karne ke liye path open rakha hai
|
| 70 |
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|