我为 Debian Linux 编写了一个小型应用程序,它调用 python2.7 来执行几乎所有的功能。例如,python 函数包括远程数据库访问,因此应用程序将依赖于默认情况下不在每个 linux 发行版中的 python 模块。
该应用程序打包在 dpkg 文件中,以便在许多其他机器(具有相同的 linux 发行版(上使用,使用 dpkg -i MyApp01
.
但是 python 依赖项必须单独安装才能使应用程序正常工作:例如pip install mysql-connector-python-rf
现在我想使用 Docker 将我的依赖项与应用程序一起交付,并使其在其他计算机上运行,而无需如上所述安装它们。Docker可以用来做到这一点吗?以及如何做?
如果没有,是否有更好的方法将 python 依赖项原生捆绑在 dpkg 文件中(假设目标计算机具有类似的环境(?
容器是一个隔离的环境,因此您必须提供程序运行所需的所有内容。
您的 Dockerfile 将基于 Debian,所以从
FROM debian
并且会有一些
RUN apt-get update
&& apt-get install -y mysoft mydependency1 mydependency2
还有
RUN pip install xxx
并以类似
CMD ["python","myapp.py"]
因为你的Python程序肯定是这样的事情
import module1, module2
这些 Python 模块需要安装在 RUN 指令中的 Dockerfile 中