如何在Python中热重载grpc-server?

Lui*_*Liz 7 python docker grpc grpc-python

我正在使用 grpc 开发一些 python 微服务,并且使用 docker 作为 cassandra 数据库和微服务。有没有办法在 docker-compose 中设置更改时重新加载?

我猜测首先我需要将代码安装为卷,但我没有看到像 Flask 那样在 GRPC 服务器上重新加载的方法。

Ree*_*ez0 6

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/
Run Code Online (Sandbox Code Playgroud)