部署Debian-python混合应用程序的更好方法

我为Debian linux编写了一个小程序,它调用python2.7来执行几乎所有的function。 Python函数包括远程数据库访问,所以应用程序将依赖于默认情况下不在每个Linux发行版中的python模块。

应用程序打包在一个dpkg文件中,以便在许多其他机器上(使用相同的Linux发行版)使用dpkg -i MyApp01

但是为了使应用程序正常工作,必须单独安装python依赖项:例如pip install mysql-connector-python-rf

现在我想使用Docker来发布我的依赖和应用程序,并使其在其他机器上工作,而不必像上面那样安装它们。 可以使用Docker来做到这一点?

如果不是,有没有更好的方法来本地捆绑dpkg文件中的python依赖关系(假设目标机器具有相似的环境)?

一个容器是一个孤立的环境,所以你必须运送你的程序运行所需的所有东西。

您的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模块将需要安装在您的Dockerfile的RUN指令中