在OpenShift 3.3下,我尝试使用oc
命令行工具创建作业(显然缺少基于参数的作业创建支持),但我无法理解如何使用现有应用程序的图像流。例如,当我的应用程序执行S2I构建时,它会推送到app:latest
图像流。我希望我尝试创建的作业使用我的应用程序的图像流在新的作业特定窗格的上下文中运行。我已经使用这个YAML准备了一份测试工作:
---
apiVersion: batch/v1
kind: Job
metadata:
name: myapp-test-job
spec:
template:
spec:
restartPolicy: Never
activeDeadlineSeconds: 30
containers:
- name: myapp
image: myapp:latest
command: ["echo", "hello world"]
当我使用oc create -f job.yaml
创建上述作业时,OpenShift无法拉myapp:latest
。如果我将image: myapp:latest
更改为image: 172.30.194.141:5000/myapp/myapp:latest
(并且这样做,指定我的OpenShift实例的内部Docker注册表的主机和端口),这是有效的,但我不想指定这似乎是对OpenShift实现细节引入依赖。有没有办法让OpenShift Jobs使用现有应用程序中的图像而不依赖于这些细节?
documentation显示image: perl
,但目前还不清楚如何使用在OpenShift 中构建和存储的Docker镜像。
答案 0 :(得分:2)
我了解到,除非您指定内部OpenShift Docker注册表的完整地址,否则您根本无法将ImageStream用于Job。相关的GitHub问题: