[英]Best practices when copying source files with Docker
最后,我一直在努力提高自己的Docker技能,但是當我不得不處理它時,仍然有一些困難。 假設我有一個分為模塊的應用程序,每個模塊都是自己的Docker服務。
所有模塊都使用存儲在config / config.ini下的配置,但是此配置需要一些預處理,因此它們使用的是config / config.py的功能。
我已經實現為:
COPY ./config .
) from config import ###
此方法確實有效,但是由於config文件夾不在pythonpath上,所以它破壞了IDE,因此我失去了一些重要的功能,更糟糕的是,我認為這不是實現所需功能的最干凈的方法。
此外,源文件也會發生這種情況。 通常,在我的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
有什么建議嗎?
我建議每個進程有一個Dockerfile。 Docker映像基本上是一種運行過程的獨立方式。 因此,如果只運行一個進程,則只需要一個Dockerfile。
您可能想要第二個Dockerfile作為測試映像。 但是您不需要每個包一個。
假設有兩個,一個用於主應用程序,一個用於測試,它將位於頂層目錄中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.