簡體   English   中英

使用Docker復制源文件時的最佳實踐

[英]Best practices when copying source files with Docker

最后,我一直在努力提高自己的Docker技能,但是當我不得不處理它時,仍然有一些困難。 假設我有一個分為模塊的應用程序,每個模塊都是自己的Docker服務。

所有模塊都使用存儲在config / config.ini下的配置,但是此配置需要一些預處理,因此它們使用的是config / config.py的功能。

我已經實現為:

  • 每個模塊的每個Dockerfile都將config /文件夾的內容復制到它們自己的( 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM