muddasser commited on
Commit
09a8aac
·
verified ·
1 Parent(s): 5dc96a7

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +7 -18
Dockerfile CHANGED
@@ -1,45 +1,34 @@
 
1
  FROM python:3.10-slim AS builder
2
-
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
5
- # Install build tools
6
  RUN apt-get update && apt-get install -y --no-install-recommends \
7
  build-essential cmake git curl \
8
  && rm -rf /var/lib/apt/lists/*
9
 
10
  WORKDIR /app
11
-
12
- # Copy and install Python dependencies
13
  COPY requirements.txt .
14
  RUN python -m venv /opt/venv && \
15
  /opt/venv/bin/pip install --upgrade pip && \
16
  /opt/venv/bin/pip install --no-cache-dir -r requirements.txt
17
 
18
- # Pre-download YOLOv8 model weights into writable path
19
- RUN mkdir -p /app/models && \
20
- curl -L -o /app/models/yolov8n.pt \
21
  https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt
22
 
23
- # -------- RUNTIME IMAGE --------
24
  FROM python:3.10-slim
25
-
26
  ENV DEBIAN_FRONTEND=noninteractive
27
  ENV PATH="/opt/venv/bin:$PATH"
28
- ENV EASYOCR_MODULE_PATH=/app/.EasyOCR
29
- ENV EASYOCR_CACHE_DIR=/app/.EasyOCR
30
- ENV YOLO_CONFIG_DIR=/app/.yolo
31
 
32
- # Install minimal OpenCV runtime dependencies
33
  RUN apt-get update && apt-get install -y --no-install-recommends \
34
  libgl1 libglib2.0-0 \
35
  && rm -rf /var/lib/apt/lists/*
36
 
37
- # Copy venv and preloaded model
38
  COPY --from=builder /opt/venv /opt/venv
39
- COPY --from=builder /app/models/yolov8n.pt /app/models/yolov8n.pt
40
-
41
- # Create writable dirs for EasyOCR & YOLO configs
42
- RUN mkdir -p /app/.EasyOCR /app/.yolo && chmod -R 777 /app/.EasyOCR /app/.yolo
43
 
44
  WORKDIR /app
45
  COPY . .
 
1
+ # Stage 1 - Builder
2
  FROM python:3.10-slim AS builder
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
 
 
5
  RUN apt-get update && apt-get install -y --no-install-recommends \
6
  build-essential cmake git curl \
7
  && rm -rf /var/lib/apt/lists/*
8
 
9
  WORKDIR /app
 
 
10
  COPY requirements.txt .
11
  RUN python -m venv /opt/venv && \
12
  /opt/venv/bin/pip install --upgrade pip && \
13
  /opt/venv/bin/pip install --no-cache-dir -r requirements.txt
14
 
15
+ # Pre-download YOLOv8 weights to the exact path Ultralytics expects
16
+ RUN mkdir -p /root/.cache/torch/hub/checkpoints && \
17
+ curl -L -o /root/.cache/torch/hub/checkpoints/yolov8n.pt \
18
  https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt
19
 
20
+ # Stage 2 - Final
21
  FROM python:3.10-slim
 
22
  ENV DEBIAN_FRONTEND=noninteractive
23
  ENV PATH="/opt/venv/bin:$PATH"
 
 
 
24
 
 
25
  RUN apt-get update && apt-get install -y --no-install-recommends \
26
  libgl1 libglib2.0-0 \
27
  && rm -rf /var/lib/apt/lists/*
28
 
 
29
  COPY --from=builder /opt/venv /opt/venv
30
+ COPY --from=builder /root/.cache/torch/hub/checkpoints/yolov8n.pt \
31
+ /root/.cache/torch/hub/checkpoints/yolov8n.pt
 
 
32
 
33
  WORKDIR /app
34
  COPY . .