update docker file
Browse files- Dockerfile +11 -17
    	
        Dockerfile
    CHANGED
    
    | @@ -1,33 +1,27 @@ | |
| 1 | 
            -
            #  | 
| 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 | 
| 12 | 
             
            WORKDIR /app
         | 
| 13 |  | 
| 14 | 
            -
            #  | 
|  | |
|  | |
|  | |
| 15 | 
             
            COPY pyproject.toml uv.lock ./.python-version /app/
         | 
| 16 |  | 
| 17 | 
            -
            # Install dependencies | 
| 18 | 
            -
            RUN  | 
| 19 | 
            -
                uv sync --frozen --no-install-project
         | 
| 20 |  | 
| 21 | 
            -
            # Copy  | 
| 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"]
         |