最后,我一直在尝试提高Docker的技能,但是当我不得不处理它时,仍然有一些困难。假设我有一个分为模块的应用程序,每个模块都是自己的Docker服务。
所有模块都使用存储在config / config.ini下的配置,但是此配置需要一些预处理,因此它们使用的是config / config.py的功能。
我将其实现为:
COPY ./config .
)from config import ###
此方法确实有效,但由于config文件夹不在pythonpath上,所以它破坏了IDE,因此我失去了一些重要的功能,更糟糕的是,我认为这不是实现我想要的最干净的方法。 / p>
此外,源文件也会发生这种情况。通常在我的python开发中,我将创建一个名为“ APP”的包(请参见下面的文件夹结构),然后可以将任何源文件导入该包的任何文件夹中,但是因为每个子文件夹都是一个不同的Docker服务,无法将此项目设为python包。例如,还对测试进行了泊坞化,因此每个测试还从其他文件夹中复制了所需的源文件:
文件unit_test_main_module.py
需要测试main_module
中的所有源文件,以便使用Dockerfile复制文件。
APP
├── unit_tests
├── Dockerfile
└── unit_test_main_module.py
├── integration_tests
├── Dockerfile
└── first_integration_test.py
├── config
├── config.ini
└── config.py
└── main_module
├── source_file_one.py
└── source_file_two.py
有什么建议吗?
答案 0 :(得分:0)
我建议每个进程使用一个Dockerfile。 Docker映像基本上是一种运行过程的独立方式。因此,如果只运行一个进程,则只需要一个Dockerfile。
您可能想要第二个Dockerfile作为测试映像。但是您不需要每个包装一个。
假设两个,一个用于主应用程序,一个用于测试,它将位于顶层目录中。