gia*_*200 2 container-registry ibm-cloud docker-buildkit
我目前正在使用以下命令来构建带有标签的图像:
buildctl build \
--frontend dockerfile.v0 --opt filename=${DOCKER_FILE} --local dockerfile=${DOCKER_ROOT} \
${BUILD_ARGS} --local context=${DOCKER_ROOT} \
--import-cache type=registry,ref=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME} \
--output type=image,name="${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG}",push=true
Run Code Online (Sandbox Code Playgroud)
我想向同一张图像添加新标签。我已经尝试过 Buildctl 命令中建议的方法来标记多个图像,但失败了。
buildctl build \
--frontend dockerfile.v0 --opt filename=${DOCKER_FILE} --local dockerfile=${DOCKER_ROOT} \
${BUILD_ARGS} --local context=${DOCKER_ROOT} \
--import-cache type=registry,ref=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME} \
--output type=image,name="${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG},${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:latest",push=true
Run Code Online (Sandbox Code Playgroud)
error: invalid value acme.com/namespace/image-name:latest
Run Code Online (Sandbox Code Playgroud)
我也尝试了以下方法,但它只创建带有latest标签的图像,而不是两者
error: invalid value acme.com/namespace/image-name:latest
Run Code Online (Sandbox Code Playgroud)
我想要的是:
IMAGE_TAG和的值latest有谁知道该怎么做?
name="foo"和之间似乎有区别"name=foo"。在这种情况下,正确的是后者。
我跟踪了启用此功能的问题https://github.com/moby/buildkit/issues/797。注释显示了如何执行此操作(根据您的环境,可能需要转义;尽管并非总是如此)。
根据问题中的场景,构建和推送具有多个标签的单个图像的正确方法如下(注意它是如何的"name=)
buildctl build \
--frontend dockerfile.v0 --opt filename=${DOCKER_FILE} --local dockerfile=${DOCKER_ROOT} \
${BUILD_ARGS} --local context=${DOCKER_ROOT} \
--import-cache type=registry,ref=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME} \
--output type=image,\"name=${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:${IMAGE_TAG},${REGISTRY_URL}/${REGISTRY_NAMESPACE}/${IMAGE_NAME}:latest\",push=true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |