部署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)
答案 0 :(得分:0)
根据Docker Registry HTTP API V2
的官方documentation
存储库名称分为路径组件。一个组件 资料库名称必须至少包含一个小写字母数字 字符,可选用句点,破折号或下划线分隔。 更严格地说,它必须匹配正则表达式 [a-z0-9] +(?:[._-] [a-z0-9] +)*。如果存储库名称包含两个或多个 路径组成部分,必须用正斜杠(“ /”)分隔。的 存储库名称的总长度(包括斜杠)必须小于 超过256个字符。
请确保您使用的是Docker Registry HTTP API V2
,并遵守上述所有规则。
尽管V1
注册表协议可用,但是体系结构中存在一些导致V2
的问题。
此外,您可以尝试使用Docker Tag
创建引用SOURCE_IMAGE的标记TARGET_IMAGE
上面有例子的更多信息。
请告诉我是否有帮助。