为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python Docker API 从 tar 创建 docker

使用 Python Docker API 从 tar 创建 docker

繁星淼淼 2021-09-14 20:43:47
我想使用远程 docker 主机通过 Python Docker API 从内存中的 tar 构建图像。当我只发送一个 Dockerfile 时,我已经成功创建了一个 docker 镜像,如下所示:client.images.build(fileobj=BytesIO(dockerfile_str.encode("utf-8"))                    tag="some_image_name",                    encoding="utf-8")但是,当我尝试根据文档设置custom_context=True并传递 a 时tar archive,它失败并显示错误:docker.errors.APIError: 500 Server Error: Internal Server Error ("Cannot locate specified Dockerfile: Dockerfile")这就是我尝试这样做的方式:with tarfile.open(fileobj=BytesIO(), mode="w") as tar:    dockerfile_str = """        FROM ubuntu        ENTRYPOINT ["printf", "Given command is %s"]        CMD ["not given"]    """.encode("utf-8")    dockerfile_tar_info = tarfile.TarInfo("Dockerfile")    dockerfile_tar_info.size = len(dockerfile_str)    tar.addfile(dockerfile_tar_info, BytesIO(dockerfile_str))    client = docker.DockerClient("some_url")    client.images.build(fileobj=tar.fileobj,                        custom_context=True,                        dockerfile="Dockerfile",                        tag="some_image_name",                        encoding="utf-8")    client.close()编辑:如果我通过磁盘进行路由:...with tarfile.open("tmp_1.tar", mode="w") as tar:...client.images.build(fileobj=tarfile.open("tmp_1.tar", mode="r").fileobj,...我反而收到以下错误消息:docker.errors.APIError: 500 Server Error: Internal Server Error ("archive/tar: invalid tar header")  
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 339 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信