将文件从Python脚本保存到Docker Container

时间:2015-07-17 21:52:03

标签: python docker docker-compose

我在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容器内部有关。

1 个答案:

答案 0 :(得分:3)

可能是文件已保存,但它位于容器的工作目录中。

docker docs说:

  

在容器中运行二进制文件的默认工作目录是根目录(Algorithm user system total real Hash 0.015000 0.000000 0.015000 ( 0.013002) OP's code 26.053000 0.016000 26.069000 ( 26.161283) Include 9.219000 0.000000 9.219000 ( 9.244161) Set 0.016000 0.000000 0.016000 ( 0.013001) ),但开发人员可以使用Dockerfile /命令设置不同的默认值。

因此文件可能会以容器的根目录WORKDIR结束。

您可以在脚本中添加/ print(如果您能够看到输出...您可能需要使用os.getcwd()命令)来验证这一点。无论哪种方式,该文件都可能位于docker logs返回的位置。