在Openshift中从Dockerhub注册表更新ImageStream

在Openshift中从Dockerhub注册表更新ImageStream,docker,containers,openshift,Docker,Containers,Openshift,我有一个定义对象“ImageStream”的模板: 因此,在创建openshift注册表中的图像后,ocget is命令返回以下内容: $ oc get is NAME IMAGE REPOSITORY TAGS UPDATED safepark-netco

我有一个定义对象“ImageStream”的模板:

因此,在创建openshift注册表中的图像后,
ocget is
命令返回以下内容:

$ oc get is
NAME                   IMAGE REPOSITORY                                                                                                   TAGS      UPDATED
safepark-netcore-img   default-route-openshift-image-registry.apps.us-east-2.starter.openshift-online.com/safepark/safepark-netcore-img   latest    About an hour ago
dockerhub中的我的原始图像和我的管道工具始终更新dockerhub中的
latest
标记。但是openshift中的ImageStream没有更新,所以我在openshift中总是得到一个旧版本的图像,并且由于openshift图像没有更新,所以从未触发新的构建

如何将OpenShift中的ImageStream“链接”到我的Dockerhub图像,并确保Dockerhub中更新的图像将更新OpenShift中的图像


重要提示:我正在使用带免费计划的Openshift Online。

如果您希望图像自动从一个注册表同步到Openshift注册表,您可以使用
importPolicy
来实现这一点

说明了导入策略的功能

importPolicy
设置为
true
以自动同步图像

apiVersion: v1
kind: ImageStream
metadata:
  name: ruby
spec:
  tags:
  - from:
      kind: DockerImage
      name: openshift/ruby-20-centos7
    name: latest
    importPolicy:
      scheduled: true
    apiVersion: v1
kind: ImageStream
metadata:
  name: ruby
spec:
  tags:
  - from:
      kind: DockerImage
      name: openshift/ruby-20-centos7
    name: latest
    importPolicy:
      scheduled: true

您无法以完全自动化的方式链接它们,因此更改会立即反映出来。使用
oc import image
命令触发对图像流的更新,使其使用最新的图像流。谢谢,它可以工作。我将把这个命令添加到我的pipelineGood,我将尝试返回这里
apiVersion: v1
kind: ImageStream
metadata:
  name: ruby
spec:
  tags:
  - from:
      kind: DockerImage
      name: openshift/ruby-20-centos7
    name: latest
    importPolicy:
      scheduled: true
    apiVersion: v1
kind: ImageStream
metadata:
  name: ruby
spec:
  tags:
  - from:
      kind: DockerImage
      name: openshift/ruby-20-centos7
    name: latest
    importPolicy:
      scheduled: true