docker - 从更新的代码中执行文件

时间:2018-01-06 21:53:07

标签: python docker dockerfile

我有一个应用程序,用户在其中提交docker随后执行的代码。目前,我有一个执行python代码的图像。我的dockerfle如下:

FROM python:latest

WORKDIR /app

COPY /repository/test.py /app

CMD ["python", "test.py"]

它执行代码很好但问题出现之后:如果用户更新了他的代码并再次运行命令来执行更新的文件,则图像不会运行更新的文件。它运行旧的。我假设这是因为当从dockerfile创建图像时,文件会被第一次和最后一次复制,并且每次调用其容器时都会一次又一次地执行该文件。

我如何解决这个问题?基本上,我想从docker执行代码,这些代码将不断更新,我需要docker来满足它。

1 个答案:

答案 0 :(得分:2)

问题是docker文件解释了如何构建映像,在这种情况下,您将复制测试文件作为构建过程的一部分。如果docker文件没有更改,则docker不会重建您的映像,因此将始终使用以前使用原始test.py构建的映像。

不是将文件复制到docker镜像(需要在每次更改时构建新图像),而是可以安装最新文件始终存在的卷

e.g:

FROM python:latest
CMD ["python", "/mount/test.py"]

然后运行

docker run -v /repository:/mount

(-v选项将本地/ repository目录安装到容器中的/ mount)