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

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

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

我会build议使用数据容器。 你可以实现一个类似的方法,当在图像构build和多个容器之间cachingbundler gems的时候,

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

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

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

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

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

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

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

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