fix: единый источник зависимостей API — Dockerfile.api через uv/pyproject.toml

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>
This commit is contained in:
jze9
2026-07-16 11:54:11 +05:00
parent eac61923f4
commit fd098f917c
5 changed files with 92 additions and 27 deletions

View File

@@ -2,12 +2,16 @@ FROM python:3.14-slim
WORKDIR /app
# Копируем зависимости
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Зависимости ставим через 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"]