2016-11-12 177 views
0

我有幾個服務在它們自己的Docker容器中運行。在我的項目中,我還有一個lib文件夾,其中包含一些所有服務所需的小模塊。將自定義模塊安裝到碼頭集裝箱中

將這些模塊包含到Docker容器中的最佳方式是什麼?顯然第三方模塊,我只是使用RUN pip install -r requirements.txt,有沒有類似的方式,我可以包括我自己的模塊?

回答

0

我結束了使用docker-composelib文件夾安裝倒入容器中,像這樣管理出來:

version: '2' 
services: 
    frontend_web: 
    build: . 
    volumes: 
     - ../../lib:/app/lib 

我那麼就不得不/應用/ lib目錄添加到容器中的PYTHONPATH,我可以輸入任何來自該文件夾的模塊。

1

我會建議使用數據容器。你可以實現一個類似的方法,當在圖像構建和多個容器之間緩存捆綁器寶石時,他們正在做的事情:

在你的docker-compose.yml(我假設你使用的是docker compose)文件中,你可以添加一個數據容器,您的其他容器:

version: '2' 
services: 
    web: 
    build: . 
    volumes: 
     - .:/app 
     - bundle:/bundle 

volumes: 
    bundle: {} 

默認情況下,容器在不存在時創建。

我對pip並不熟悉,但我認爲它可以與bundler類似的方式工作:將pip安裝路徑設置爲您的數據容器,並獲得持久層,其中pip將放置所有模塊。當另一個容器需要相同的模塊時,只需安裝數據容器即可。

也許你必須解決一些問題,但我認爲主要想法可以適用於你的情況。