我有幾個服務在它們自己的Docker容器中運行。在我的項目中,我還有一個lib
文件夾,其中包含一些所有服務所需的小模塊。將自定義模塊安裝到碼頭集裝箱中
將這些模塊包含到Docker容器中的最佳方式是什麼?顯然第三方模塊,我只是使用RUN pip install -r requirements.txt
,有沒有類似的方式,我可以包括我自己的模塊?
我有幾個服務在它們自己的Docker容器中運行。在我的項目中,我還有一個lib
文件夾,其中包含一些所有服務所需的小模塊。將自定義模塊安裝到碼頭集裝箱中
將這些模塊包含到Docker容器中的最佳方式是什麼?顯然第三方模塊,我只是使用RUN pip install -r requirements.txt
,有沒有類似的方式,我可以包括我自己的模塊?
我結束了使用docker-compose
的lib
文件夾安裝倒入容器中,像這樣管理出來:
version: '2'
services:
frontend_web:
build: .
volumes:
- ../../lib:/app/lib
我那麼就不得不/應用/ lib目錄添加到容器中的PYTHONPATH
,我可以輸入任何來自該文件夾的模塊。
我會建議使用數據容器。你可以實現一個類似的方法,當在圖像構建和多個容器之間緩存捆綁器寶石時,他們正在做的事情:
在你的docker-compose.yml
(我假設你使用的是docker compose)文件中,你可以添加一個數據容器,您的其他容器:
version: '2'
services:
web:
build: .
volumes:
- .:/app
- bundle:/bundle
volumes:
bundle: {}
默認情況下,容器在不存在時創建。
我對pip並不熟悉,但我認爲它可以與bundler類似的方式工作:將pip安裝路徑設置爲您的數據容器,並獲得持久層,其中pip將放置所有模塊。當另一個容器需要相同的模塊時,只需安裝數據容器即可。
也許你必須解決一些問題,但我認爲主要想法可以適用於你的情況。