Dockerfile.api ставил зависимости из requirements.txt, версии разошлись с pyproject.toml/uv.lock (redis, sqlalchemy и др.). Теперь сборка идёт через `uv sync --frozen` напрямую из pyproject.toml/uv.lock, requirements.txt удалён. Заодно нашёлся отсутствующий python-multipart (нужен FastAPI для UploadFile/Form в organizations_crud.py) — без него API падал при старте. Добавлен .dockerignore в корень: раньше Dockerfile.api через COPY . . затягивал в образ .git, data/, web-react, web — теперь только нужное. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
18 lines
513 B
Docker
18 lines
513 B
Docker
FROM python:3.14-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Зависимости ставим через uv по pyproject.toml/uv.lock — тот же источник,
|
|
# что и в локальной разработке, версии не расходятся.
|
|
RUN pip install --no-cache-dir uv
|
|
COPY pyproject.toml uv.lock ./
|
|
RUN uv sync --frozen --no-install-project --no-dev
|
|
|
|
# Копируем приложение
|
|
COPY . .
|
|
|
|
ENV PATH="/app/.venv/bin:$PATH"
|
|
|
|
# Стартуем приложение
|
|
CMD ["python", "main.py"]
|