我如何在Docker映像的外部文件夹中包含python模块?

问题描述 投票:1回答:1

我在一个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文件。我该怎么办?

python git docker docker-compose
1个回答
0
投票
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。

参考此https://www.python.org/dev/peps/pep-0328/

© www.soinside.com 2019 - 2024. All rights reserved.