Dockerfile是一个文本文档,包含组装Docker映像的说明当我们告诉docker通过执行docker build命令来构建我们的映像时,Docker将读取这些指令并执行它们,从而创建一个Docker映像
添加到Dockerfile的第一行是#语法分析器指令尽管是可选的,但该指令指示Docker Builder在解析Dockerfile时使用什么语法,并允许启用BuildKit的旧Docker版本在开始构建之前升级解析器解析器指令必须出现在Dockerfile中的任何其他注释,空格或Dockerfile指令之前,并且应该是docker file中的第一行
#语法=docker/dockerfile:1
我们推荐docker/dockerfile:1,它总是指向版本1语法的最新版本BuildKit将在构建之前自动检查语法更新,以确保您使用的是最新版本
接下来,我们需要在Dockerfile中添加一行,告诉Docker我们希望在应用程序中使用什么基本图像。
#语法=docker/dockerfile:1
来自蟒蛇:3.8—苗条克星
Docker图像可以从其他图像继承因此,我们将使用官方Python映像,而不是创建自己的基本映像,该映像已经拥有运行Python应用程序所需的所有工具和包
为了更容易运行剩下的命令,让我们创建一个工作目录这指示Docker将此路径用作所有后续命令的默认位置通过这样做,我们不必输入完整的文件路径,但是我们可以使用基于工作目录的相对路径
工作目录/应用程序
通常,下载用Python编写的项目后,首先要做的是安装pip包这可以确保您的应用程序安装了所有依赖项
在运行pip3 install之前,我们需要将requirements.txt文件放入我们的映像中我们将使用这个COPY命令来执行这个操作这个COPY命令有两个参数第一个参数告诉Docker您想要复制到图像的文件第二个参数告诉Docker您想要将文件复制到哪里我们将把requirements.txt文件复制到我们的工作目录/app中
COPY requirements . txt requirements . txt
一旦我们的requirements.txt在图像中有了我们的文件,我们就可以使用RUN命令来执行命令pip3 install这与在pip3 install本地机器上运行完全相同,但这次模块被安装到映像中
RUN pip3安装要求. txt
此时,我们有了一个基于Python版本的映像,并且已经安装了我们的依赖项下一步是将我们的源代码添加到图像中
复制。中定义的自定义主机/etc/hosts将不会被继承。
此COPY命令获取当前目录中的所有文件,并将它们复制到映像中现在,我们所要做的就是告诉Docker,当我们的图像在容器中执行时,我们想要运行什么命令我们使用CMD命令来实现这一点请注意,我们需要通过指定— host=0.0.0.0来使应用程序在外部可见
煤矿管理局
这是一个完整的Dockerfile。要将其他主机传输到您的容器,请参阅参考文档中的将条目添加到容器主机文件。
#语法=docker/dockerfile:1
来自蟒蛇:3.8—苗条克星
工作目录/应用程序
COPY requirements . txt requirements . txt
RUN pip3安装要求. txt
复制。您可以根据每个容器覆盖这些设置。。
煤矿管理局
。郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。