Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
openshift imagestream不支持';t轨道私人码头回购_Image_Docker_Openshift_Openshift Origin - Fatal编程技术网

openshift imagestream不支持';t轨道私人码头回购

openshift imagestream不支持';t轨道私人码头回购,image,docker,openshift,openshift-origin,Image,Docker,Openshift,Openshift Origin,我有一个图像流定义如下与openshift起源。当我在openshift中创建、导入或更新图像流对象时,它将自动拾取docker repo中定义的任何标记。当我通过docker推送图像时(即,docker推送/myimage),图像流不会随docker中的新图像更新。我必须手动更新图像流或重新导入它或重新创建它。此外,我还设置了一个openshift构建,该构建输出到图像流,当构建成功完成时,它会将构建的输出图像推送到私有docker repo,但是图像流不会接收到这个,除非我重新导入、更新或重

我有一个图像流定义如下与openshift起源。当我在openshift中创建、导入或更新图像流对象时,它将自动拾取docker repo中定义的任何标记。当我通过docker推送图像时(即,
docker推送/myimage
),图像流不会随docker中的新图像更新。我必须手动更新图像流或重新导入它或重新创建它。此外,我还设置了一个openshift构建,该构建输出到图像流,当构建成功完成时,它会将构建的输出图像推送到私有docker repo,但是图像流不会接收到这个,除非我重新导入、更新或重新创建图像流——它不会自动执行。我已经设置了部署配置来获取对映像流的更新,并且当映像流更新时它确实会触发新的部署,但是我必须手动更新映像流

当备份私有docker repo基于imagestream进行更新时,如何让imagestream自动更新

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
apiVersion:v1 种类:ImageStream 元数据: 姓名:isname 名称空间:mynamespace 标签: 部署id:master 姓名:isname 名称空间:mynamespace 规格: dockerImageRepository:“/myimage” 标签: -姓名:最新 发件人: 种类:DockerImage 名称:'/myimage:latest' 进口政策: 预定:真 让我知道是否需要其他配置,请阅读:

6:我如何告诉系统定期导入我的标签?当我们 正在与外部注册中心合作,我们希望能够 定期重新导入映像以获取最新的安全更新等。 为此,我们将对oc tag命令使用--scheduled标志,如 因此:

oc tag docker.io/python:3.6.0 python:3.6--计划

这将通知系统该特定图像流标记 应定期检查更新。目前,这一时期是 群集范围的设置,默认设置为15分钟

只能使用指向外部docker注册表的图像流标记 定期检查更新

要删除定期检查,请重新运行上述命令,但忽略 --预定标志。这会将其行为重置为默认值


对于图像位于外部图像注册表中的情况,这是预期的默认行为。更新图像时立即触发图像触发器仅适用于内部图像注册表中的图像。这就是当您使用
oc import image
将图像拉入内部注册表时所触发的。内存中有一个设置,用于每隔一段时间轮询外部图像注册表以检查更新,但现在无法快速找到。感谢您的回复。我注意到,如果我有一个内部集成注册表,它最终会接收新的图像,但它每15分钟进行一次民意调查。如果没有内部注册表,它不会进行轮询(或者可能是轮询,但我没有等待15分钟)。为简单起见,我希望避免使用内部集成注册表,因为我已经可以访问非我管理的私有回购:-)。知道如何增加轮询间隔会很好,我想我在master-config.yml-scheduledImageImportMinimumIntervalSeconds默认值为900中找到了它。我将尝试30秒作为更新,减少scheduledImageImportMinimumIntervalSeconds似乎没有任何作用。不管怎样,当我添加了itegrated注册表时,它都能正常工作。我无法推、拉或使用注册表,但至少图像流标记会在备份docker image:标记更新时更新。如果您有集成注册表,如果它设置正确,您应该能够使用
docker
登录到它,并推/拉到它。我让内部注册表工作-这有点麻烦,因为我在代理后面,openshift喜欢使用ips而不是FDQN。图像流现在工作并自动更新/跟踪docker repos。如果没有集成注册表,图像流似乎无法更新任意docker repos的轨迹。图像流仅在集成注册表存在的情况下更新,即使im没有推/拉到它。