将自定义模块安装到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-compose
将lib
文件夹装入容器来pipe理它,如下所示:
version: '2' services: frontend_web: build: . volumes: - ../../lib:/app/lib
然后,我只需要将/ app / lib添加到容器的PYTHONPATH
,我就可以从该文件夹导入任何模块。
- 使用docker-py执行shell命令
- 模块导入错误,如何刷新Ipython会话?
- 有什么方法可以确保您在stream模式下从docker-py日志逐行读取吗?
- 即使已经安装,Ansible也不能导入docker-py
- 在远程主机上使用pycharm在Docker容器中进行debugging
- 错误:无法findRequirement.parse('supervisor')的合适分配
- 当python应用程序发送SIGTERM时,容器崩溃
- 在Docker中运行的Python / Flask中运行Vision API演示时的StatusCode.UNAUTHENTICATED
- Tensorflow对象检测在启动之前终止