Pushkar02-n commited on
Commit
8ca07e8
·
verified ·
1 Parent(s): 84f0b5d

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +13 -8
Dockerfile CHANGED
@@ -3,21 +3,26 @@ FROM python:3.12-slim-bookworm
3
  # Install uv
4
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
5
 
6
- # Create non-root user
7
  RUN useradd -m -u 1000 user
8
 
9
- WORKDIR /app
 
 
10
 
11
- # ---- Dependency layer (cached) ----
12
- COPY pyproject.toml uv.lock ./
 
13
 
 
 
14
  RUN uv sync --frozen --no-cache
15
 
16
  # ---- Application code ----
17
  COPY --chown=user:user . .
18
 
19
- USER user
20
-
21
- EXPOSE 8000
22
 
23
- CMD ["sh", "-c", "uv run uvicorn src.api.main:app --host 0.0.0.0 --port ${PORT:-8000}"]
 
 
3
  # Install uv
4
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
5
 
6
+ # Create non-root user (Hugging Face requirement)
7
  RUN useradd -m -u 1000 user
8
 
9
+ # Set working directory to the user's home folder
10
+ WORKDIR /home/user/app
11
+ RUN chown user:user /home/user/app
12
 
13
+ # Switch to the user BEFORE installing dependencies!
14
+ # This ensures the .venv is owned by 'user', not 'root'.
15
+ USER user
16
 
17
+ # ---- Dependency layer (cached) ----
18
+ COPY --chown=user:user pyproject.toml uv.lock ./
19
  RUN uv sync --frozen --no-cache
20
 
21
  # ---- Application code ----
22
  COPY --chown=user:user . .
23
 
24
+ # Hugging Face explicitly requires exposing 7860
25
+ EXPOSE 7860
 
26
 
27
+ # Run Uvicorn directly on port 7860
28
+ CMD ["uv", "run", "uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "7860"]