diff --git a/Работы/ИРФМ/.dockerignore b/Работы/ИРФМ/.dockerignore new file mode 100644 index 0000000..fec0e3f --- /dev/null +++ b/Работы/ИРФМ/.dockerignore @@ -0,0 +1,13 @@ +.git +.venv +__pycache__ +**/__pycache__ +*.pyc +*.pyo +*.pyd +.pytest_cache +.mypy_cache +.ipynb_checkpoints +LR2/ +LR1/ +data/montcoalert/ diff --git a/Работы/ИРФМ/Dockerfile b/Работы/ИРФМ/Dockerfile new file mode 100644 index 0000000..4da13d0 --- /dev/null +++ b/Работы/ИРФМ/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.12-slim + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 + +WORKDIR /app + +RUN pip install --no-cache-dir "flask>=3.1.2" + +COPY LR3 /app/LR3 +COPY data /app/data + +EXPOSE 5000 + +CMD ["flask", "--app", "LR3/irfm_lr3.py", "run", "--host=0.0.0.0", "--port=5000"] diff --git a/Работы/ИРФМ/README.md b/Работы/ИРФМ/README.md index 0fc5fcd..89c78c0 100644 --- a/Работы/ИРФМ/README.md +++ b/Работы/ИРФМ/README.md @@ -38,3 +38,33 @@ uv run python LR3/cli_client.py ``` CLI позволяет вручную выбрать метод API, указать входные данные и формат ответа. + +## Docker (для передачи коллеге) + +Собрать образ из корня проекта: + +```bash +docker build -t irfm-lr3-api . +``` + +Запустить контейнер: + +```bash +docker run --rm -p 5000:5000 irfm-lr3-api +``` + +API будет доступен по адресу `http://localhost:5000`. + +Проверка: + +```bash +curl http://localhost:5000/api/calls?page=1&per_page=3 +``` + +Важно: база `data/calls.db` копируется внутрь образа на этапе сборки. Если нужно сохранять изменения между перезапусками контейнера, можно примонтировать внешний файл базы: + +```bash +docker run --rm -p 5000:5000 \ + -v $(pwd)/data/calls.db:/app/data/calls.db \ + irfm-lr3-api +``` diff --git a/Работы/ЭА/ЛР1_ЭА.xlsx b/Работы/ЭА/ЛР1_ЭА.xlsx index c6c9ead..ad58672 100644 Binary files a/Работы/ЭА/ЛР1_ЭА.xlsx and b/Работы/ЭА/ЛР1_ЭА.xlsx differ