CLAUDE: Fix Docker build for UV migration

Fixed Docker build issues to complete UV migration.

## Changes

### README.md
- Created backend README.md (required by hatchling build system)
- Simple quick start guide referencing CLAUDE.md

### Dockerfile
- Added `build-essential` for compiling native extensions (pendulum Rust code)
- Updated copy steps to include README.md in both dev and prod stages
- Dockerfile now successfully builds both development and production images

### .dockerignore
- Added exception `!README.md` to allow README.md through
- Keeps other *.md files excluded as intended

## Testing
-  Development image builds successfully (paper-dynasty-backend:dev-uv)
-  Production image builds successfully (paper-dynasty-backend:prod-uv)
-  Container starts and UV installs dependencies correctly
-  Application attempts to start (fails only on missing .env, as expected)

## Build Results
- Dev image: 73 packages installed (with dev deps)
- Prod image: 57 packages installed (no dev deps)
- Both stages use `uv sync --frozen` for reproducible builds
- Build time: ~1-2 minutes per stage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Cal Corum 2025-11-04 09:19:30 -06:00
parent 9a9018aab4
commit 6d1bc77e38
3 changed files with 26 additions and 4 deletions

View File

@ -44,6 +44,7 @@ docker-compose.yml
# Documentation # Documentation
*.md *.md
!README.md
docs/ docs/
# OS # OS

View File

@ -14,6 +14,7 @@ ENV PYTHONUNBUFFERED=1 \
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
curl \ curl \
postgresql-client \ postgresql-client \
build-essential \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install UV # Install UV
@ -25,8 +26,8 @@ WORKDIR /app
# Development stage # Development stage
FROM base as development FROM base as development
# Copy dependency files # Copy dependency files (including README.md referenced in pyproject.toml)
COPY pyproject.toml uv.lock ./ COPY pyproject.toml uv.lock README.md ./
# Install all dependencies (including dev) # Install all dependencies (including dev)
RUN uv sync --frozen RUN uv sync --frozen
@ -43,8 +44,8 @@ CMD ["uv", "run", "python", "-m", "uvicorn", "app.main:socket_app", "--host", "0
# Production stage # Production stage
FROM base as production FROM base as production
# Copy dependency files # Copy dependency files (including README.md referenced in pyproject.toml)
COPY pyproject.toml uv.lock ./ COPY pyproject.toml uv.lock README.md ./
# Install production dependencies only # Install production dependencies only
RUN uv sync --frozen --no-dev RUN uv sync --frozen --no-dev

20
backend/README.md Normal file
View File

@ -0,0 +1,20 @@
# Paper Dynasty Backend
FastAPI-based real-time baseball game engine with WebSocket support.
## Quick Start
```bash
# Install UV
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
# Run server
uv run python -m app.main
```
## Documentation
See `CLAUDE.md` for full documentation.