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

fix docker issue

Browse files
Files changed (1) hide show
  1. Dockerfile +17 -11
Dockerfile CHANGED
@@ -1,27 +1,33 @@
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"]
 
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"]