如何使用带有自定义标记的pythonapi构建本地docker映像

2024-10-02 14:26:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个剧本:

import docker
import os

localtag = "mypersonaltag"

client = docker.from_env()
dockerfile_path = os.path.dirname(os.getcwd())
print(dockerfile_path)

fname = dockerfile_path + "/Dockerfile"
path = os.path.dirname(fname)
image, build_log  = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag='localtag', rm=True)
print(image)

如果我执行这个脚本,它将创建并构建本地docker映像,标记名为localtag,但不是localtag 我的个人标签。我已经尝试了所有其他可能的方法,如下面,看看标签参数。这是一个错误。你知道吗

image, build_log  = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag=localtag, rm=True)


图像,生成日志=client.images.build版本(path=dockerfile\u路径,dockerfile='dockerfile',tag={localtag},rm=True)

但奇怪的是,这个[image, build_log = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag=localtag, rm=True)]命令在python编辑器中运行得非常好,而使用python脚本则会产生错误。不知道为什么?但是只要我在标签周围加上引号,python脚本就可以正常工作了。你知道吗

>>> tag  = "test02"
>>> image, build_log  = client.images.build(path=path, dockerfile='Dockerfile', tag=tag, rm=True)
>>> print(image)
<Image: 'local_tag:latest', 'localtag:latest', 'test01:latest', 'test02:latest'>

Tags: pathdockerrmimagedockerfilebuildclientlog
1条回答
网友
1楼 · 发布于 2024-10-02 14:26:19
image, build_log  = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag=localtag, rm=True)

将变量传递给函数有问题,请删除localtag周围的引号

如果您以这种方式传递变量tag={localtag},那么您就是在告诉python:“Hey take may variable,把它放在set中,然后把这个set传递给function”。可能您会尝试使用fstring构造的f"{localtag}"(需要python3.6)。你知道吗

edit

请告诉我们,你如何调用你的脚本?错误是什么?你知道吗

相关问题 更多 >