部署 Debian-python 混合应用程序的更好方法
A better way to deploy a Debian-python hybrid application
我为 Debian linux 编写了一个小应用程序,它调用 python2.7 来执行几乎所有的功能。
python 功能包括例如远程数据库访问,因此该应用程序将依赖 python 默认情况下不在每个 linux 发行版中的模块。
该应用程序被打包在一个 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 模块需要在 运行 指令中安装到您的 Dockerfile 中
我为 Debian linux 编写了一个小应用程序,它调用 python2.7 来执行几乎所有的功能。 python 功能包括例如远程数据库访问,因此该应用程序将依赖 python 默认情况下不在每个 linux 发行版中的模块。
该应用程序被打包在一个 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 模块需要在 运行 指令中安装到您的 Dockerfile 中