diff --git a/examples/extension_service/.gitignore b/examples/extension_service/.gitignore index fbc67727e75973ecf335d3365c3d1b1b8cb6078a..1e0cc99a625fe2123a27787f22b1783a2d68d6b5 100644 --- a/examples/extension_service/.gitignore +++ b/examples/extension_service/.gitignore @@ -1 +1 @@ -.docker-compose.override.yml \ No newline at end of file +docker-compose.override.yml \ No newline at end of file diff --git a/examples/extension_service/Dockerfile.local b/examples/extension_service/Dockerfile.local new file mode 100644 index 0000000000000000000000000000000000000000..994d988a029b2c54363a269a7e55d0daff2f4da4 --- /dev/null +++ b/examples/extension_service/Dockerfile.local @@ -0,0 +1,22 @@ +FROM python:3.9-slim + +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONUNBUFFERED=1 +ENV USER=perx + +RUN mkdir -p /home/${USER}/data /home/${USER}/app /home/${USER}/logs +WORKDIR /home/${USER}/app + +ARG PIP_EXTRA_INDEX_URL=${PIP_EXTRA_INDEX_URL} +ENV PIP_EXTRA_INDEX_URL=$PIP_EXTRA_INDEX_URL + +COPY . /home/${USER}/app +RUN pip install perxis==0.0.16 +RUN pip install 'watchdog[watchmedo]' + +ENV PYTHONPATH="/home/perx/app" +ENV PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python + +#CMD ["python", "/home/perx/app/server.py"] +#CMD ["watchmedo auto-restart --recursive --signal SIGTERM python /home/perx/app/server.py"] +CMD ["sh", "watchdog.sh"] \ No newline at end of file diff --git a/examples/extension_service/docker-compose.override.example.yml b/examples/extension_service/docker-compose.override.example.yml new file mode 100644 index 0000000000000000000000000000000000000000..855146c02bc75ba23dbeaff96877e163bd917bb4 --- /dev/null +++ b/examples/extension_service/docker-compose.override.example.yml @@ -0,0 +1,14 @@ +version: "3.9" + +services: + demo-ext-backend: + build: + context: . + dockerfile: Dockerfile.local + args: + - PIP_EXTRA_INDEX_URL=${PIP_EXTRA_INDEX_URL} + ports: + - 50051:50051 + volumes: + - .:/home/perx/app + - <Путь Рє интерпретатору питона>/site-packages/perxis:/usr/local/lib/python3.9/site-packages/perxis \ No newline at end of file diff --git a/examples/extension_service/docker-compose.yml b/examples/extension_service/docker-compose.yml index 52b018e514a73f7a9d14919948738a9bcb76b70d..ec4c72895cd9f00f5cd07b42bf7e7958d536c78b 100644 --- a/examples/extension_service/docker-compose.yml +++ b/examples/extension_service/docker-compose.yml @@ -2,15 +2,13 @@ version: "3.9" services: demo-ext-backend: - ports: - - 50051:50051 build: context: . + dockerfile: Dockerfile args: - PIP_EXTRA_INDEX_URL=${PIP_EXTRA_INDEX_URL} restart: unless-stopped - volumes: - - .:/home/perx/app + networks: - storage - default diff --git a/examples/extension_service/readme.md b/examples/extension_service/readme.md index fad54dbbdc89b218c50e66cbb552a0cbc7fcf0ca..28146c68e90d1164dec9f1c2e62fc1f207825c72 100644 --- a/examples/extension_service/readme.md +++ b/examples/extension_service/readme.md @@ -3,3 +3,12 @@ 2. Указать переменную PIP_EXTRA_INDEX_URL 3. docker-compose up +Для того чтобы работал hot reaload Рё была возможность изменения библиотеки perxis без публикации РЅРѕРІРѕР№ версии РЅСѓР¶РЅРѕ: +1. Создать файл docker-compose.override.yml +2. Скопировать РІ него содержимое docker-compose.override.example.yml +3. Установить РЅР° локальный интерпретатор пакет perxis-python +4. Р’ файле docker-compose.override.yml указать путь РґРѕ site-packages локального интерпретатора + +После этого РїСЂРё изменениях РІ РёСЃС…РѕРґРЅРѕРј РєРѕРґРµ (включая правки РІ пакете perxis) будет перезагружен сервис. Рзменения РІ пакет +perxis РЅСѓР¶РЅРѕ будет вносить РЅР° локальной машине РІ каталоге <путь РґРѕ site-packages>/perxis + diff --git a/examples/extension_service/watchdog.sh b/examples/extension_service/watchdog.sh new file mode 100644 index 0000000000000000000000000000000000000000..388214ed949156ac16c597c979cf555b10c94bf6 --- /dev/null +++ b/examples/extension_service/watchdog.sh @@ -0,0 +1,2 @@ +watchmedo auto-restart --pattern "*.py;*.json" --recursive --signal SIGTERM \ + python ./server.py \ No newline at end of file