Adding of custom Docker file and updating pip tools before installing
Browse files- Dockerfile +44 -0
- app.py +2 -1
- requirements.txt +1 -1
Dockerfile
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Use a lightweight Python image with version 3.9
|
| 2 |
+
FROM python:3.9-slim
|
| 3 |
+
|
| 4 |
+
# Create a non-root user with UID 1000 as required by Hugging Face Spaces
|
| 5 |
+
RUN useradd -m -u 1000 user
|
| 6 |
+
|
| 7 |
+
# Set environment variables
|
| 8 |
+
ENV PYTHONDONTWRITEBYTECODE=1 \
|
| 9 |
+
PYTHONUNBUFFERED=1 \
|
| 10 |
+
PATH="/home/user/.local/bin:$PATH"
|
| 11 |
+
|
| 12 |
+
# Install required system packages (including wget)
|
| 13 |
+
RUN apt-get update && apt-get install -y wget && rm -rf /var/lib/apt/lists/*
|
| 14 |
+
|
| 15 |
+
RUN apt-get update && apt-get install -y git
|
| 16 |
+
RUN git config --global user.email "[email protected]"
|
| 17 |
+
# Switch to non-root user
|
| 18 |
+
USER user
|
| 19 |
+
|
| 20 |
+
# Set the working directory (root, since you don’t have an /app folder)
|
| 21 |
+
WORKDIR /home/user
|
| 22 |
+
|
| 23 |
+
# Copy requirements.txt before copying other files to utilize Docker cache
|
| 24 |
+
COPY --chown=user requirements.txt .
|
| 25 |
+
|
| 26 |
+
# pip update install tools
|
| 27 |
+
run pip install -U pip setuptools wheel
|
| 28 |
+
# Install required dependencies
|
| 29 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 30 |
+
|
| 31 |
+
# Copy the rest of the project files to the container
|
| 32 |
+
COPY --chown=user . .
|
| 33 |
+
|
| 34 |
+
# RUN wget https://github.com/gitpod-io/openvscode-server/releases/download/openvscode-server-v1.86.2/openvscode-server-v1.86.2-linux-x64.tar.gz -O /tmp/openvscode-server.tar.gz && \
|
| 35 |
+
# tar -xzf /tmp/openvscode-server.tar.gz -C /opt && \
|
| 36 |
+
# rm /tmp/openvscode-server.tar.gz && \
|
| 37 |
+
# mv /opt/openvscode-server-v1.86.2-linux-x64 /opt/openvscode-server && \
|
| 38 |
+
# chown -R 1000:1000 /opt/openvscode-server
|
| 39 |
+
|
| 40 |
+
# Expose the port Gradio runs on (7860)
|
| 41 |
+
# EXPOSE 7860
|
| 42 |
+
|
| 43 |
+
# Command to run the Gradio app
|
| 44 |
+
CMD ["python", "app.py"]
|
app.py
CHANGED
|
@@ -4,6 +4,8 @@ import torch.nn as nn
|
|
| 4 |
from torchvision import transforms
|
| 5 |
from PIL import Image
|
| 6 |
import time
|
|
|
|
|
|
|
| 7 |
from concrete.ml.torch.compile import compile_torch_model
|
| 8 |
|
| 9 |
from custom_resnet import resnet18_custom # Assuming custom_resnet.py is in the same directory
|
|
@@ -21,7 +23,6 @@ def load_model(model_path, device):
|
|
| 21 |
model.eval() # Set model to evaluation mode
|
| 22 |
return model
|
| 23 |
|
| 24 |
-
from concrete.fhe import Configuration
|
| 25 |
|
| 26 |
def load_secure_model(model):
|
| 27 |
print("Compiling secure model...")
|
|
|
|
| 4 |
from torchvision import transforms
|
| 5 |
from PIL import Image
|
| 6 |
import time
|
| 7 |
+
|
| 8 |
+
from concrete.fhe import Configuration
|
| 9 |
from concrete.ml.torch.compile import compile_torch_model
|
| 10 |
|
| 11 |
from custom_resnet import resnet18_custom # Assuming custom_resnet.py is in the same directory
|
|
|
|
| 23 |
model.eval() # Set model to evaluation mode
|
| 24 |
return model
|
| 25 |
|
|
|
|
| 26 |
|
| 27 |
def load_secure_model(model):
|
| 28 |
print("Compiling secure model...")
|
requirements.txt
CHANGED
|
@@ -2,4 +2,4 @@ gradio
|
|
| 2 |
torch
|
| 3 |
torchvision
|
| 4 |
Pillow
|
| 5 |
-
concrete-ml
|
|
|
|
| 2 |
torch
|
| 3 |
torchvision
|
| 4 |
Pillow
|
| 5 |
+
concrete-ml==1.6.1
|