我在一个git存储库中用python编写了2个服务,并通过docker-compose和docker部署到了容器中。我想通过第三方OpenID Connect服务添加一些授权。我已经编写了一个处理授权的模块,并且希望在每个服务中使用它。我的存储库如下所示:
services:
first_service:
Dockerfile
docker-compose.yml
first_service_python_module
second_service:
Dockerfile
docker-compose.yml
second_service_python_module
docker-compose.yml
.git
最初,我希望我的授权模块位于'services'文件夹中,但是由于我无法在没有特殊参数的情况下处理Docker外部文件夹,因此无法构建Docker映像。但由于docker-compose文件,我无法指定此参数。因此,我得出了下一个存储库结构:
services:
first_service:
Dockerfile
docker-compose.yml
first_service_python_module
authorization_module
second_service:
Dockerfile
docker-compose.yml
second_service_python_module
authorization_module
docker-compose.yml
.git
显然,有很多重复的代码,很难维护。
我想避免代码重复。但也不必大量更改docker和docker-compose文件。我该怎么办?
services:
first_service:
Dockerfile
docker-compose.yml
first_service_python_module
second_service:
Dockerfile
docker-compose.yml
second_service_python_module
service_authorization:
authorization_module
docker-compose.yml
.git
因此,您可以做的是,您可以在其他python模块/服务中相对导入此authorization_module。