File size: 1,352 Bytes
7bd644b
 
 
 
 
24d4193
 
 
 
7bd644b
 
 
4ff8d3a
 
 
7bd644b
4ff8d3a
 
 
 
7bd644b
24d4193
 
7bd644b
 
 
24d4193
2ff538a
7bd644b
 
 
24d4193
20fa8a0
7bd644b
 
 
 
 
 
 
c3b483d
7bd644b
4ff8d3a
7bd644b
 
 
24d4193
 
7bd644b
 
 
24d4193
 
 
7bd644b
 
 
24d4193
 
7bd644b
 
 
24d4193
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
FROM python:3.11-slim

# ======================
# ENV
# ======================
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PORT=7860

# ======================
# SYSTEM DEPENDENCIES
# ======================
RUN apt-get update && apt-get install -y --no-install-recommends \
    git \
    build-essential \
    libgl1 \
    libglib2.0-0 \
    libsm6 \
    libxrender1 \
    libxext6 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# ======================
# WORKDIR
# ======================
WORKDIR /app

# ======================
# COPY REQUIREMENTS
# ======================
COPY requirements.txt .

# ======================
# CLEAN INSTALL (IMPORTANT FIX)
# ======================
RUN pip install --no-cache-dir --upgrade pip

# safety: remove broken installs if any base image has them
RUN pip uninstall -y transformers || true
RUN pip install --no-cache-dir torchvision
RUN pip install --no-cache-dir -r requirements.txt

# ======================
# COPY CODE
# ======================
COPY . .

# ======================
# SECURITY USER
# ======================
RUN useradd -m appuser && chown -R appuser /app
USER appuser

# ======================
# PORT
# ======================
EXPOSE 7860

# ======================
# RUN APP
# ======================
CMD ["sh", "-c", "uvicorn mainapp:app --host 0.0.0.0 --port ${PORT}"]