gpt4 book ai didi

python - 将文件作为参数传递给 Docker 容器

转载 作者:IT老高 更新时间:2023-10-28 12:38:53 25 4
gpt4 key购买 nike

一个非常简单的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] No such file or directory: 'file1.txt'

所以错误是由于 file1.txt 不在容器中,但是如果我与 friend 共享这个容器并且 friend 想要传递一个非常不同的文件作为参数,我该如何编写 Dockerfile 所以任何人我的容器可以将非常不同的文件作为参数传递而不会出错?提前致谢。 (我是 Docker 新手)

最佳答案

那样做是行不通的。正如你所说,file1.txt 不在容器中。

解决方法是在运行容器时使用 Docker 卷将文件从主机注入(inject)到容器中。

类似这样的:

docker run -v /local/path/to/file1.txt:/container/path/to/file1.txt -t boot:latest python boot.py /container/path/to/file1.txt

然后 /local/path/to/file1.txt 将是您主机上的路径,它将覆盖 /container/path/to/file1.txt容器。

关于python - 将文件作为参数传递给 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41092587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com