如何在 python 中热重载 grpc-server?
How to hot reload grpc-server in python?
我正在使用 grpc 开发一些 python 微服务,我正在使用 docker 用于 cassandra 数据库和微服务。有没有办法在 docker-compose 中设置更改时重新加载?
我猜首先我需要将代码安装为一个卷,但我没有看到像 flask 那样在 GRPC 服务器上重新加载的方法。
我们使用 watchdog[watchmedo]
与我们的 grpc 服务和 Docker。
安装看门狗或添加到您的 requirements.txt
文件
python -m pip install watchdog[watchmedo]
然后在您的 docker-compose.yml
中将 watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/" python -- -m app
添加到您的容器中,其中 --directory
是您的应用程序包含在 docker 容器中的目录,并且 python -- -m app
是启动 grpc 服务器的文件。在此示例中,启动服务器的文件名为 app.py
:
app:
build:
context: ./app/
dockerfile: ./Dockerfile
target: app
command: watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/" python -- -m app
volumes:
- ./app/:/usr/src/app/
我正在使用 grpc 开发一些 python 微服务,我正在使用 docker 用于 cassandra 数据库和微服务。有没有办法在 docker-compose 中设置更改时重新加载?
我猜首先我需要将代码安装为一个卷,但我没有看到像 flask 那样在 GRPC 服务器上重新加载的方法。
我们使用 watchdog[watchmedo]
与我们的 grpc 服务和 Docker。
安装看门狗或添加到您的 requirements.txt
文件
python -m pip install watchdog[watchmedo]
然后在您的 docker-compose.yml
中将 watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/" python -- -m app
添加到您的容器中,其中 --directory
是您的应用程序包含在 docker 容器中的目录,并且 python -- -m app
是启动 grpc 服务器的文件。在此示例中,启动服务器的文件名为 app.py
:
app:
build:
context: ./app/
dockerfile: ./Dockerfile
target: app
command: watchmedo auto-restart --recursive --pattern="*.py" --directory="/usr/src/app/" python -- -m app
volumes:
- ./app/:/usr/src/app/