gpt4 book ai didi

python - 文件作为Docker Python应用程序的命令行参数

转载 作者:行者123 更新时间:2023-12-02 21:23:36 24 4
gpt4 key购买 nike

我需要创建将从命令行读取文件的dockerized python应用程序。

我不知道是否可能,但是我运行该应用程序的规范是:

docker run -t myimage file.csv

目前,我的docker文件如下所示:
FROM python:3
ADD test.py /
ENTRYPOINT ["python", "test.py"]
CMD ["test.py"]

其中test.py是:
导入系统
def main(args):
for a in args:
print(a)
with open(a, 'r') as f:
for l in f:
print(l)


if __name__ == '__main__':
main(sys.argv)

最佳答案

除非您将其作为卷映射到容器中,否则docker容器将看不到该文件。该语法如下所示:

docker run -t -v `pwd`/file.csv:/file.csv myimage file.csv

这样会将./file.csv映射为/file.csv到容器中,然后容器中的脚本将运行:
python test.py file.csv

您也可以使用docker cli将输入通过管道传递到容器中,以替换stdin。在CLI中,您需要包括 -i以使其具有交互性,然后使用常规的shell重定向,例如:
docker run -it myimage <file.csv

如果这样做,则需要更新python脚本以从stdin读取而不是从文件读取,并且如果您将stdin用于其他用途,则无法选择与python脚本交互。

关于python - 文件作为Docker Python应用程序的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090663/

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