From d1bcff8f5c013c6848e6d44b3b7cef05d2c0b584 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sun, 4 Oct 2026 02:38:46 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=80=D0=B5=D0=B7=200=20[2.2]:=20Dockerf?= =?UTF-8?q?ile=20=D0=B8=20.dockerignore=20(=D0=B1=D0=B5=D0=B7=20raisa=5F*)?= =?UTF-8?q?,=20.dockerignore=20=D0=B1=D0=BE=D0=BB=D1=8C=D1=88=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D0=B2=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- .dockerignore | 18 ++++++++++++++++++ .gitignore | 2 +- Dockerfile | 21 +++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1b6a96b --- /dev/null +++ b/.dockerignore @@ -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 diff --git a/.gitignore b/.gitignore index 31a0067..e089f24 100644 --- a/.gitignore +++ b/.gitignore @@ -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/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..67e4968 --- /dev/null +++ b/Dockerfile @@ -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"]