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

时间:2016-11-12 19:37:47

标签: python docker

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

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

2 个答案:

答案 0 :(得分:1)

我建议使用数据容器。在图像构建和多个容器之间缓存bundler gems时,你可以实现rails类似的方法:

docker-compose.yml(我假设您使用的是docker compose)文件中,您可以添加一个可以挂载到其他容器中的数据容器:

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

volumes:
  bundle: {}

默认情况下,容器在不存在时创建。

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

也许你必须解决一些问题,但我认为主要想法可以适用于你的情况。

答案 1 :(得分:0)

我最后通过使用libdocker-compose文件夹挂载到容器中来管理它,如下所示:

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

然后我只需要将/ app / lib添加到容器的PYTHONPATH中,然后我可以从该文件夹中导入任何模块。