我在Docker容器中有一个简单的Python脚本:
– 调用外部API
– 从API返回许可证文件
我希望能够将返回的许可证文件保存到docker容器内的目录中.
这就是我所做的:
r = requests.post("http://api/endpoint",headers=headers,data=data,auth=("","")
f = open('test.lic','w+')
f.write(r.content)
f.close()
我的理解是,这将创建一个test.lic文件(如果尚未存在),或者打开现有的test.lic文件,并将请求对象的内容写入test.lic.但这不起作用.没有文件保存到Docker容器内的目录中.如果我从python shell运行这些行,它可以工作,所以我猜它与Docker容器内部有关.
最佳答案
可能是文件正在保存,但它位于容器的工作目录中.
原文链接:https://www.f2er.com/docker/435898.htmlThe default working directory for running binaries within a container is the root directory (
/
),but the developer can set a different default with the DockerfileWORKDIR
command.
因此,文件可能会以容器的根目录/结尾.
您可以在脚本中添加os.getcwd()的打印(如果您能够看到输出…您可能需要使用docker logs命令)来验证这一点.无论哪种方式,该文件都可能位于os.getcwd()返回的位置.