我写下面的脚本,将建立码头形象,然后把它推到ECR。 在这里,在这个片段中,我发布了构建图像时的错误。这是在Window操作系统本地机器上,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
我怎样才能解决这个问题?是否有必要在您的本地计算机上,在我的情况下,在窗口Docker应该是可用的?未安装Docker,但已安装Docker python包版本4.1.0
。你知道吗
print(docker.__version__)
>> 4.1.0
你还需要安装Docker引擎。这是Docker引擎的PythonAPI,因此它只是通过Python接口使用来自本地Docker的源代码。此外,您的API版本需要与Docker engine SDK匹配。你知道吗
从docs:
版本化API和SDK
您应该使用的Docker引擎API的版本取决于Docker守护程序和Docker客户端的版本。你知道吗
给定版本的Docker Engine SDK支持特定版本的Docker Engine API以及所有早期版本。如果发生了突破性的变化,它们会被记录在显著位置。你知道吗
守护程序和客户端API不匹配
Docker守护程序和客户机不一定总是需要相同的版本。但是,请记住以下几点。
如果守护程序比客户端新,则客户端不知道守护程序中的新功能或不推荐使用的API端点。
如果客户端比守护程序更新,则客户端可以请求守护程序不知道的API端点。“
相关问题 更多 >
编程相关推荐