将文件从 Python 脚本保存到 Docker 容器

Save file from Python script to Docker Container

我有一个简单的 Python 脚本,在 Docker 容器内,即:

-调用外部 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 容器内部有关。

可能是文件正在保存,但它在容器的工作目录中。

docker docs 说:

The default working directory for running binaries within a container is the root directory (/), but the developer can set a different default with the Dockerfile WORKDIR command.

因此文件可能最终位于容器的根目录 / 中。

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

返回的位置

在我的例子中,文件被保存到不同的容器中。如果 docker-compose.

中有多个容器,请检查它