使用S2i推送Docker镜像至私有JFrog仓库时默认推送到OpenShift仓库问题
问题描述
我尝试将Docker镜像推送到私有JFrog仓库,但通过S2i工具执行推送操作时,镜像默认被推送到了OpenShift仓库。相关ImageStream配置如下:
apiVersion: v1 items: - apiVersion: image.openshift.io/v1 kind: ImageStream metadata: annotations: openshift.io/generated-by: OpenShiftNewApp openshift.io/image.insecureRepository: "true" creationTimestamp: null labels: app: bulkhold-s2i name: bulkhold-s2i spec: output: to: kind: DockerImage name: 'bulkhold-s2i:latest' dockerImageRepository: *****/it-mfg/bulkhold pushSecret: name: itmfg-docker-dev-local status: dockerImageRepository: ******/it-mfg/bulkhold tag: latest
解决方法
- 修正
spec.output.to.name配置,补充JFrog仓库的完整镜像路径,格式为[JFrog仓库地址]/it-mfg/bulkhold/bulkhold-s2i:latest,替换[JFrog仓库地址]为你的实际私有仓库地址。这一步是明确告知S2i工具镜像的推送目标,而非默认的OpenShift内部仓库。 - 确认
pushSecret指定的itmfg-docker-dev-local密钥已正确配置JFrog仓库的认证信息(用户名、密码或令牌),确保OpenShift具备向该私有仓库推送镜像的权限。 - 修正后的ImageStream spec核心配置示例:
spec: output: to: kind: DockerImage name: '*****/it-mfg/bulkhold/bulkhold-s2i:latest' dockerImageRepository: *****/it-mfg/bulkhold pushSecret: name: itmfg-docker-dev-local
spec.dockerImageRepository字段已正确指向JFrog仓库路径,无需修改,它用于让ImageStream与外部仓库的镜像信息保持同步。
内容的提问来源于stack exchange,提问作者Hemanth Kumar Kudumu
相关产品推荐
相关产品推荐

