首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带有自定义标签名称的python API构建本地docker镜像

如何使用带有自定义标签名称的python API构建本地docker镜像
EN

Stack Overflow用户
提问于 2019-12-18 18:56:33
回答 1查看 462关注 0票数 1

我有这个脚本:

代码语言:javascript
复制
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,而不是mypersonaltag。我已经尝试了像下面这样的所有其他可能的方法,看看标签参数。这就是抛出错误。

代码语言:javascript
复制
image, build_log  = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag=localtag, rm=True)

代码语言:javascript
复制
 image, build\_log  = client.images.build(path=dockerfile\_path, dockerfile='Dockerfile', tag={localtag}, rm=True)

但奇怪的是,这个[image, build_log = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag=localtag, rm=True)]命令可以通过python编辑器完美地工作,而使用python脚本时它会给出错误。不知道为什么?但只要我在标记两边加上引号,python脚本现在就可以正常工作了。

代码语言:javascript
复制
>>> 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'>
EN

回答 1

Stack Overflow用户

发布于 2019-12-18 20:10:47

代码语言:javascript
复制
image, build_log  = client.images.build(path=dockerfile_path, dockerfile='Dockerfile', tag=localtag, rm=True)

将变量传递给函数存在问题,请删除localtag两边的引号

如果你以这种方式传递tag={localtag}变量,那么你就是在告诉python:“嘿,取一个变量,把它放在set里,然后把这个集合传递给function”。您可能会尝试使用f"{localtag}",它使用fstring结构(需要python3.6)。

--edit--

请告诉我们,您如何调用您的脚本?那么错误是什么呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59390522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档