yasyn14 commited on
Commit
bd5dda0
·
1 Parent(s): 7ebe6ad

edited dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -10
Dockerfile CHANGED
@@ -1,35 +1,43 @@
1
  # syntax=docker/dockerfile:1
2
  FROM python:3.12-slim
3
 
4
- # 1. Create non‑root user
 
 
 
 
 
 
 
 
 
5
  RUN useradd --create-home --shell /bin/bash --uid 1000 appuser
6
 
7
- # 2. Environment variables - set HF_HOME to match what's used in lifespan
8
  ENV PYTHONDONTWRITEBYTECODE=1 \
9
  PYTHONUNBUFFERED=1 \
10
  HF_HOME=/home/appuser/huggingface \
11
  PORT=7860 \
12
  PATH=/home/appuser/.local/bin:$PATH
13
 
14
- # 3. Set working directory
15
  WORKDIR /home/appuser/app
16
 
17
- # 4. Install Python dependencies
18
  COPY requirements.txt .
19
  RUN pip install --upgrade pip \
20
  && pip install --no-cache-dir -r requirements.txt
21
 
22
- # 5. Copy code and set permissions
23
  COPY --chown=appuser:appuser . .
24
 
25
- # 6. Create huggingface directory with proper permissions
26
  RUN mkdir -p /home/appuser/huggingface && \
27
  chown -R appuser:appuser /home/appuser
28
 
29
- # 7. Switch to appuser
30
  USER appuser
31
 
32
-
33
- # 9. Expose port & run app using uvicorn
34
  EXPOSE 7860
35
- CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
 
1
  # syntax=docker/dockerfile:1
2
  FROM python:3.12-slim
3
 
4
+ # 1. Install system dependencies for OpenCV
5
+ RUN apt-get update && apt-get install -y --no-install-recommends \
6
+ libgl1 \
7
+ libglib2.0-0 \
8
+ libsm6 \
9
+ libxrender1 \
10
+ libxext6 \
11
+ && rm -rf /var/lib/apt/lists/*
12
+
13
+ # 2. Create non-root user
14
  RUN useradd --create-home --shell /bin/bash --uid 1000 appuser
15
 
16
+ # 3. Environment variables
17
  ENV PYTHONDONTWRITEBYTECODE=1 \
18
  PYTHONUNBUFFERED=1 \
19
  HF_HOME=/home/appuser/huggingface \
20
  PORT=7860 \
21
  PATH=/home/appuser/.local/bin:$PATH
22
 
23
+ # 4. Set working directory
24
  WORKDIR /home/appuser/app
25
 
26
+ # 5. Install Python dependencies
27
  COPY requirements.txt .
28
  RUN pip install --upgrade pip \
29
  && pip install --no-cache-dir -r requirements.txt
30
 
31
+ # 6. Copy code and set permissions
32
  COPY --chown=appuser:appuser . .
33
 
34
+ # 7. Create huggingface directory with proper permissions
35
  RUN mkdir -p /home/appuser/huggingface && \
36
  chown -R appuser:appuser /home/appuser
37
 
38
+ # 8. Switch to non-root user
39
  USER appuser
40
 
41
+ # 9. Expose port and run app
 
42
  EXPOSE 7860
43
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]