Aasher commited on
Commit
375f786
·
1 Parent(s): 5354474

update docker file

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -17
Dockerfile CHANGED
@@ -1,33 +1,27 @@
1
- # Use official slim Python base
2
  FROM python:3.12-slim
3
 
4
  # Install uv package manager
5
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
6
 
7
- # Ensure clean python environment and no stray bytecode
8
  ENV PYTHONUNBUFFERED=1 \
9
- PYTHONDONTWRITEBYTECODE=1
 
10
 
11
- # Set working directory inside container
12
  WORKDIR /app
13
 
14
- # Copy lock and project config first for layer caching
 
 
 
15
  COPY pyproject.toml uv.lock ./.python-version /app/
16
 
17
- # Install dependencies only (not installing the app code yet)
18
- RUN --mount=type=cache,target=/root/.cache/uv \
19
- uv sync --frozen --no-install-project
20
 
21
- # Copy the full app source code
22
  COPY . /app
23
 
24
- # Install app code on top of deps (no dev dependencies)
25
- RUN --mount=type=cache,target=/root/.cache/uv \
26
- uv sync --frozen --no-dev
27
-
28
- # Expose port
29
- ENV PORT=8000
30
- EXPOSE $PORT
31
-
32
  # Start FastAPI with uvicorn via uv-managed venv
33
  CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
 
1
+ # Use official slim base
2
  FROM python:3.12-slim
3
 
4
  # Install uv package manager
5
  COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
6
 
 
7
  ENV PYTHONUNBUFFERED=1 \
8
+ PYTHONDONTWRITEBYTECODE=1 \
9
+ UV_CACHE_DIR=/app/.uv_cache
10
 
11
+ # Set working directory
12
  WORKDIR /app
13
 
14
+ # Create writable cache directory
15
+ RUN mkdir -p /app/.uv_cache
16
+
17
+ # Copy pyproject files
18
  COPY pyproject.toml uv.lock ./.python-version /app/
19
 
20
+ # Install dependencies
21
+ RUN uv sync --frozen --no-install-project
 
22
 
23
+ # Copy app source
24
  COPY . /app
25
 
 
 
 
 
 
 
 
 
26
  # Start FastAPI with uvicorn via uv-managed venv
27
  CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]