首页 > 解决方案 > Docker - 将 Python 和依赖项添加到 Apache

问题描述

我有一个 python 脚本,我正在尝试为其创建一个docker容器。我是新手,docker所以如果这真的很简单,请原谅!

如果我python在新系统上设置现有脚本,我总是运行以下命令来安装依赖项......

pip install numpy opencv-python dlib imutils

我有一个像这样Dockerfile加载PHP的基础apache......

FROM php:7.0-apache
COPY src/ /var/www/html
EXPOSE 80

有没有办法可以添加Python到堆栈中并安装这些依赖项?还是我完全弄错了 Docker?

标签: dockerdockerfile

解决方案


如果我在第一点上理解正确,您需要从 Python 获取一些包,然后尝试执行一次(例如,我在这里导入 Python 的 2.7 版本的图像)。

FROM python2.7-slim

然后对于多个软件包安装,您可以创建一个名为requirements.txt(其中将包含所有软件包详细信息)的文件,然后也可以在其中运行以下命令。

cat requirements.txt
numpy
opencv-python
dlib
imutils

pip install -r requirements.txt


如果我在新系统上设置现有的 python 脚本,我总是运行以下命令来安装依赖项......

关于 Docker 概念的一点解释:所以 Docker 的概念不是要在任何机器上安装依赖项,也不要让我们的代码在任何机器上运行,而无需添加额外的东西来安装我们代码的依赖项等。基本上我们的 Dockerize 解决方案应该能够处理任何系统. 以下是步骤:

1- 在 Python 中创建您的代码(这里以它为例)。2-现在将它放在docker的目录中。3- 最重要的步骤创建一个名为Dockerfiledocker 目录的文件。4- 现在提及其中的所有命令序列,以下是 Dockerfile` 的示例:

FROM python2.7-slim
DIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python","your_python_code_file"]

所以在这里你可以看到,每当我们构建我们的镜像(我们的代码和 Dockerfile 的组合)时,我们不需要在我们的实际服务器/机器中安装任何东西,这是 Docker 的好处,我们的镜像应该是免费的。一旦我们构建了图像并将其发布到存储库,任何其他人也可以在任何其他机器上使用相同的图像。


推荐阅读