Решение по TD-STYLE-ANALYZERS: LF — инструменты проекта (Python/Node) пишут LF, CRLF-.sh не работают на Linux CI (sh scripts/ci.sh), большинство файлов уже были LF. Добавлен .gitattributes (* text=auto eol=lf, бинарные исключения), .editorconfig переведён на lf, 1029 файлов конвертированы, git add --renormalize. Из индекса убраны закравшиеся archive/**/__pycache__/*.pyc.
25 lines
923 B
Docker
25 lines
923 B
Docker
# ─── Этап 1: сборка фронтенда ─────────────────────────────────────────────
|
|
FROM node:22-alpine AS frontend
|
|
WORKDIR /fe
|
|
COPY frontend/package.json frontend/package-lock.json* ./
|
|
RUN npm install --no-audit --no-fund
|
|
COPY frontend/ ./
|
|
RUN npm run build
|
|
|
|
# ─── Этап 2: бэкенд + статика фронта ──────────────────────────────────────
|
|
FROM python:3.12-slim
|
|
WORKDIR /srv
|
|
|
|
COPY backend/requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY backend/app ./app
|
|
COPY --from=frontend /fe/dist ./frontend_dist
|
|
|
|
ENV LEADRADAR_FRONTEND_DIST=/srv/frontend_dist \
|
|
LEADRADAR_DATA=/data \
|
|
PYTHONUNBUFFERED=1
|
|
|
|
EXPOSE 8000
|
|
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
|