Sanket17 commited on
Commit
c13799b
·
1 Parent(s): 19d935b

updaded file

Browse files
Files changed (1) hide show
  1. Dockerfile +24 -8
Dockerfile CHANGED
@@ -1,24 +1,40 @@
1
  FROM python:3.9-slim
2
 
3
- WORKDIR /code
 
 
 
 
4
 
5
- # Create a non-root user
6
- RUN useradd -m -u 1000 user
7
- RUN chown -R user:user /code
8
 
9
  # Set environment variables
10
- ENV TRANSFORMERS_CACHE=/code/.cache
11
- ENV HF_HOME=/code/.cache
 
 
 
 
12
 
13
- # Install dependencies
14
  COPY requirements.txt .
15
  RUN pip install --no-cache-dir -r requirements.txt
16
 
 
 
 
 
17
  # Copy application code
18
  COPY . .
 
19
 
20
  # Switch to non-root user
21
  USER user
22
 
 
 
 
 
 
23
  # Run the application
24
- CMD ["uvicorn", "src.api:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
  FROM python:3.9-slim
2
 
3
+ # Install system dependencies
4
+ RUN apt-get update && apt-get install -y \
5
+ build-essential \
6
+ git \
7
+ && rm -rf /var/lib/apt/lists/*
8
 
9
+ WORKDIR /code
 
 
10
 
11
  # Set environment variables
12
+ ENV PYTHONUNBUFFERED=1 \
13
+ TRANSFORMERS_CACHE=/code/.cache \
14
+ HF_HOME=/code/.cache
15
+
16
+ # Create cache directories with proper permissions
17
+ RUN mkdir -p /code/.cache && chmod 777 /code/.cache
18
 
19
+ # Install Python dependencies first to leverage Docker cache
20
  COPY requirements.txt .
21
  RUN pip install --no-cache-dir -r requirements.txt
22
 
23
+ # Create a non-root user
24
+ RUN useradd -m -u 1000 user \
25
+ && chown -R user:user /code
26
+
27
  # Copy application code
28
  COPY . .
29
+ RUN chown -R user:user /code
30
 
31
  # Switch to non-root user
32
  USER user
33
 
34
+ # Download and cache models during build
35
+ RUN python -c "from transformers import AutoProcessor, AutoModelForCausalLM; \
36
+ processor = AutoProcessor.from_pretrained('microsoft/Florence-2-base', trust_remote_code=True); \
37
+ model = AutoModelForCausalLM.from_pretrained('microsoft/OmniParser', torch_dtype='float16', trust_remote_code=True)"
38
+
39
  # Run the application
40
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]