【发布时间】:2017-04-26 19:56:42
【问题描述】:
一个非常简单的python程序,假设当前目录是/PYTHON,我想将file.txt作为参数传递给python脚本boot.py,这是我的Dockerfile
FROM python
COPY boot.py ./
COPY file.txt ./
RUN pip install numpy
CMD ["python", "boot.py", "file.txt"]
然后我构建 Docker 容器:
docker build -t boot/latest .
然后运行容器
docker run -t boot:latest python boot.py file.txt
我得到了正确的结果。
但是如果我将另一个文件 file1.txt 复制到当前目录(从不同的目录(不是 /PYTHON)),那么我会再次运行容器:
docker run -t boot:latest python boot.py file1.txt
我收到以下错误:
FileNotFoundError: [Errno 2] 没有这样的文件或目录:'file1.txt'
所以错误是由于 file1.txt 不在容器中,但是如果我与朋友共享这个容器并且朋友想要传递一个非常不同的文件作为参数,我该如何编写 Dockerfile 所以任何人我的容器可以将非常不同的文件作为参数传递而不会出错?提前致谢。 (我是 Docker 新手)
【问题讨论】:
-
您需要根据您传递的文件更改您的 Dockerfile...如果正在使用 file.txt 而不是使用 file1.txt ,请查看 Dockerfile 内部,那里有 file1.txt 吗?
-
file1.txt 不在 Dockerfile 中,因为我不知道提前将哪些文件作为参数传递。
-
提交github.com/docker/cli/issues/3046 以简化将文件传递到“docker run”