gpt4 book ai didi

构建 docker 镜像的 Python 脚本抛出 "The system cannot find the file specified."

转载 作者:行者123 更新时间:2023-12-02 18:27:11 25 4
gpt4 key购买 nike

我正在编写以下脚本,该脚本将构建 docker 镜像,然后将其推送到 ECR。
在这里,在这个片段中,我在构建图像时发布了错误。这是在 Window OS 本地机器上,python 版本是 3.8.0

我有以下文件夹结构:

/home:
-->ECR
-->buildImage.py
Dockerfile

脚本 /home/ECR/buildImage.py看起来像这样:
import docker
docker_api = docker.APIClient()

dockerfile_path = os.path.dirname(os.getcwd())
print("Docker file location: " + dockerfile_path)
if os.path.isfile(dockerfile_path + "\\Dockerfile"):
print("File exists")
else:
print("File does not exist...")

docker_api.build(path=dockerfile_path, tag=local_tag, rm=True, dockerfile=".\\Dockerfile")

上面这给我带来了错误:
pywintypes.error: (2, 'WaitNamedPipe', 'The system cannot find the file specified.')

有了这个,
docker_api.build(path='dockerfile_path', tag=local_tag, rm=True, dockerfile=".\\Dockerfile")

这让我
TypeError: You must specify a directory to build in path

我怎样才能解决这个问题?在您的本地机器上是否有必要在我的情况下在 Window Docker 中可用?没有安装docker但是docker python包版本 4.1.0已安装。
print(docker.__version__)
>> 4.1.0

最佳答案

您还需要安装 Docker 引擎。这是 Docker 引擎的 Python API,因此它只是通过 Python 接口(interface)使用本地 Docker 的源代码。此外,您的 API 版本需要与您的 Docker 引擎 SDK 相匹配。

来自 docs :

版本化 API 和 SDK

您应该使用的 Docker Engine API 版本取决于您的 Docker 守护程序和 Docker 客户端的版本。

给定版本的 Docker 引擎 SDK 支持特定版本的 Docker 引擎 API,以及所有早期版本。如果发生重大更改,则将它们记录在显着位置。

守护程序和客户端 API 不匹配

  • Docker 守护进程和客户端不一定需要始终是相同的版本。但是,请记住以下几点。
  • 如果守护程序比客户端更新,则客户端不知道守护程序中的新功能或已弃用的 API 端点。
  • 如果客户端比守护程序更新,客户端可以请求守护程序不知道的 API 端点。”
  • 关于构建 docker 镜像的 Python 脚本抛出 "The system cannot find the file specified.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59377331/

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