Срез 0 [2.2]: Dockerfile и .dockerignore (без raisa_*), .dockerignore больше не в .gitignore

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Andrey Epifancev 2026-10-04 02:38:46 +04:00
parent 7f99f50434
commit d1bcff8f5c
3 changed files with 40 additions and 1 deletions

18
.dockerignore Normal file
View File

@ -0,0 +1,18 @@
.git
.superpowers
.claude
.codegraph
openspec
docs
setup
**/__pycache__
**/*.pyc
**/.mypy_cache
**/.ruff_cache
**/.pytest_cache
# локальное окружение и горячие папки dev/тестов: в контейнер окружение приходит из compose
api/.venv
api/.env
api/.env.test
api/.hotfolder
api/.hotfolder-test

2
.gitignore vendored
View File

@ -323,7 +323,6 @@ dist
# Custom ignore
.DS_Store
docker-compose.yml
.dockerignore
.vscode
my_project_env
.cursorignore
@ -333,3 +332,4 @@ my_project_env
# scan-gateway: локальная горячая папка dev-режима
api/.hotfolder/
api/.hotfolder-test/

21
Dockerfile Normal file
View File

@ -0,0 +1,21 @@
# Образ scan-gateway для dev и `make check-full`. Контекст сборки — корень репозитория.
# Платформенные пакеты raisa_* (Nexus) в образ не ставятся — та же логика, что в `make venv`.
FROM python:3.11-slim
ENV PYTHONUNBUFFERED=1 \
PIP_DISABLE_PIP_VERSION_CHECK=1
WORKDIR /app/api
COPY api/requirements.txt ./requirements.txt
RUN grep -v '^raisa_' requirements.txt > /tmp/req.txt \
&& pip install --no-cache-dir -r /tmp/req.txt \
&& rm /tmp/req.txt
COPY api/ ./
EXPOSE 8000
# Шлюз. Эмулятор ИС Сканирование запускается из этого же образа командой `python -m src.scan_emulator`,
# которую compose задаёт через `command`.
CMD ["python", "run_server.py"]