Python 将自定义模块安装到docker容器中

Python 将自定义模块安装到docker容器中,python,docker,Python,Docker,我有几个服务在自己的Docker容器中运行。在我的项目中,我还有一个lib文件夹,其中包含所有服务所需的一些小模块 将这些模块包含到Docker容器中的最佳方式是什么?显然,我只使用第三方模块运行pip安装-r requirements.txt,有没有类似的方法可以包含我自己的模块?我建议使用数据容器。当在映像构建和多个容器之间缓存bundler gem时,您可以实现rails人员所做的类似方法: version: '2' services: web: build: . vo

我有几个服务在自己的Docker容器中运行。在我的项目中,我还有一个
lib
文件夹,其中包含所有服务所需的一些小模块


将这些模块包含到Docker容器中的最佳方式是什么?显然,我只使用第三方模块运行pip安装-r requirements.txt,有没有类似的方法可以包含我自己的模块?

我建议使用数据容器。当在映像构建和多个容器之间缓存bundler gem时,您可以实现rails人员所做的类似方法:

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

volumes:
  bundle: {}
在您的
docker compose.yml
(我假设您使用的是docker compose)文件中,您可以添加一个可以装入其他容器的数据容器:

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

volumes:
  bundle: {}
默认情况下,容器在不存在时创建

我不熟悉pip,但我认为它可以以与bundler类似的方式工作:将pip安装路径设置为数据容器,并获得一个持久层,pip将在其中放置所有模块。当另一个容器需要相同的模块时,只需挂载数据容器


也许你必须解决一些问题,但我认为主要的想法在你的情况下是可行的。

我最终通过使用
docker compose
lib
文件夹装入容器来管理它,如下所示:

version: '2'
services:
  frontend_web:
    build: .
    volumes:
      - ../../lib:/app/lib
然后,我只需将/app/lib添加到容器的
PYTHONPATH
,就可以从该文件夹导入任何模块