【发布时间】:2017-07-27 15:25:19
【问题描述】:
我有一个定义如下的图像流,其来源为 openshift。当我在 openshift 中创建、导入或更新图像流对象时,它会自动获取 docker repo 中定义的任何标签。当我通过 docker(即docker push <private-repo-host-and-port>/myimage)推送图像时,图像流不会使用 docker 中的新图像进行更新。我必须手动更新图像流或重新导入或重新创建它。此外,我还有一个 openshift 构建设置,它输出到图像流,当构建成功完成时,它会将构建的输出图像推送到私有 docker repo,但除非我重新,否则图像流不会接收到这一点导入或更新或重新创建图像流 - 它不会自动执行。我设置了部署配置以获取映像流的更新,并且它会在映像流更新时触发新的部署,但我必须手动更新映像流。
当基于它的支持私有 Docker 存储库更新时,如何让图像流自动更新?
apiVersion: v1
kind: ImageStream
metadata:
name: isname
namespace: mynamespace
labels:
deployment-id: master
name: isname
namespace: mynamespace
spec:
dockerImageRepository: '<private-repo-host-and-port>/myimage'
tags:
- name: latest
from:
kind: DockerImage
name: '<private-repo-host-and-port>/myimage:latest'
importPolicy:
scheduled: true
如果需要其他配置,请告诉我
【问题讨论】:
-
对于图像位于外部图像注册表中的情况,这是预期的默认行为。更新映像时立即触发映像触发器仅适用于内部映像注册表中的映像。这就是您在使用
oc import-image时触发的内容,因为它将图像拉入内部注册表。从内存中,有一个设置可以让外部映像注册表每隔一段时间轮询一次以检查更新,但现在无法快速找到它。
标签: image docker openshift openshift-origin