问题描述
我正在使用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/