teja141290 commited on
Commit
241f993
·
1 Parent(s): 98bf2c9

Fix: Update Dockerfile to handle permissions and cache directories

Browse files
Files changed (1) hide show
  1. Dockerfile +27 -7
Dockerfile CHANGED
@@ -2,8 +2,17 @@ FROM python:3.10-slim
2
 
3
  WORKDIR /code
4
 
5
- # Set environment variable to disable pip cache
6
  ENV PIP_NO_CACHE_DIR=1
 
 
 
 
 
 
 
 
 
7
 
8
  # Install system dependencies with cleanup
9
  RUN apt-get update && \
@@ -18,6 +27,14 @@ RUN apt-get update && \
18
  mkdir -p /tmp && \
19
  chmod 777 /tmp
20
 
 
 
 
 
 
 
 
 
21
  # Copy requirements first
22
  COPY requirements.txt .
23
 
@@ -30,14 +47,17 @@ RUN pip install --no-cache-dir --upgrade pip && \
30
  mkdir -p /tmp && \
31
  chmod 777 /tmp
32
 
33
- # Copy application code
34
- COPY . .
35
-
36
  # Create necessary directories with proper permissions
37
  RUN mkdir -p /tmp/models/parts/weights/weights && \
38
- chmod -R 777 /tmp
 
 
 
 
 
 
 
39
 
40
  EXPOSE 7860
41
 
42
- # Added --reload flag for development convenience
43
- CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860", "--reload"]
 
2
 
3
  WORKDIR /code
4
 
5
+ # Set environment variables
6
  ENV PIP_NO_CACHE_DIR=1
7
+ ENV HOME=/home/user
8
+ ENV PYTHONPATH=/code
9
+ ENV HF_HOME=/home/user/huggingface
10
+ ENV YOLO_CONFIG_DIR=/home/user/ultralytics
11
+
12
+ # Create non-root user
13
+ RUN useradd -m -u 1000 user && \
14
+ mkdir -p /home/user && \
15
+ chown -R user:user /home/user
16
 
17
  # Install system dependencies with cleanup
18
  RUN apt-get update && \
 
27
  mkdir -p /tmp && \
28
  chmod 777 /tmp
29
 
30
+ # Create cache directories with proper permissions
31
+ RUN mkdir -p /home/user/.cache && \
32
+ mkdir -p /home/user/huggingface && \
33
+ mkdir -p /home/user/ultralytics && \
34
+ chown -R user:user /home/user/.cache && \
35
+ chown -R user:user /home/user/huggingface && \
36
+ chown -R user:user /home/user/ultralytics
37
+
38
  # Copy requirements first
39
  COPY requirements.txt .
40
 
 
47
  mkdir -p /tmp && \
48
  chmod 777 /tmp
49
 
 
 
 
50
  # Create necessary directories with proper permissions
51
  RUN mkdir -p /tmp/models/parts/weights/weights && \
52
+ chmod -R 777 /tmp && \
53
+ chown -R user:user /tmp/models
54
+
55
+ # Copy application code
56
+ COPY --chown=user:user . .
57
+
58
+ # Switch to non-root user
59
+ USER user
60
 
61
  EXPOSE 7860
62
 
63
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]