0

部署 yaml 中的图像格式如下:

'${DockerRegistry}/${orgName}/${projectName}/${ImageName}:${version}'

docker 注册表名称后的映像名称中有 3 个正斜杠,这会导致错误。我尝试使用 16、17、18 和 19 的 Kubernetes 插件,并且 Kubernetes 的 Process Yaml 步骤抛出以下错误。

Loading /opt/ibm-ucd/agent/var/work/lr-central-credit-register/common/openshift/dc.yml The desired versions for existing image components is [:] Creating ibm-ucd-kubernetes.yaml Creating component: cbrpoc-loan-requests-cbrpoc-loan-requests/lr-central-credit-register Caught: java.io.IOException: 400 Error processing command: Name cannot contain the following characters: / \ [ ] % java.io.IOException: 400 Error processing command: Name cannot contain the following characters: / \ [ ] % at com.urbancode.ud.client.UDRestClient.invokeMethod(UDRestClient.java:225) at com.urbancode.ud.client.ComponentClient.createComponent(ComponentClient.java:180) at processyaml.createComponent(processyaml.groovy:481) at processyaml.this$4$createComponent(processyaml.groovy) at processyaml$_run_closure6.doCall(processyaml.groovy:362) at processyaml.run(processyaml.groovy:325)
4

1 回答 1

0

根据官方文档Docker Registry HTTP API V2

存储库名称被分解为路径组件。存储库名称的组成部分必须至少是一个小写字母数字字符,可选用句点、破折号或下划线分隔。更严格地说,它必须匹配正则表达式 [a-z0-9]+(?:[._-][a-z0-9]+)*。如果存储库名称具有两个或多个路径组件,则它们必须用正斜杠 (“/”) 分隔。存储库名称的总长度(包括斜杠)必须少于 256 个字符。

请确保您正在使用Docker Registry HTTP API V2并遵守上述所有规则。

虽然V1注册协议是可用的,但架构存在几个问题导致V2.

此外,您可以尝试使用Docker Tag

创建一个引用 SOURCE_IMAGE 的标记 TARGET_IMAGE

上面列出的示例的更多信息。

请让我知道这是否有帮助。

于 2019-07-26T11:01:42.190 回答