使用 Kubernetes 安排构建
Scheduling a build using Kubernetes
文档 https://docs.openshift.com/container-platform/3.9/dev_guide/cron_jobs.html 提供了创建 cron 作业的详细信息。
要启动每 10 分钟执行一次构建的计划任务,我使用命令:
oc run run-build 161/my-app --image=myimage --restart=OnFailure --schedule='*/10 * * * *'
哪个returns:
cronjob.batch/run-build created
但是作业启动失败:
pod日志显示:
Error: unknown command "161/my-app" for "openshift-deploy"
Run 'openshift-deploy --help' for usage.
我是否配置了错误地启动 cron 作业的命令 (oc run run-build 161/my-app --image=myimage --restart=OnFailure --schedule='*/10 * * * *'
)?
您正在尝试使用 161/my-app
命令覆盖图像 CMD
/ARG
(这似乎无效)。
你应该使用:
oc run run-build --image=myimage --schedule='*/10 * * * *' \
--restart=OnFailure \
--command -- <YOUR COMMAND HERE>
其中 run-build
是您创建的 cronjob 的名称。
如果您想使用默认的 CMD
/ARG
构建在容器镜像中,只需省略 --command
标志及其值。
首先,要找到oc run
的完整文档并不容易,所以让我们与source code
一起讨论
由于已经创建了cronjob.batch/run-build
,构建是由kubernetes调度的,所以schedule部分可能没有问题。
现在的问题是图像 运行 失败的原因。
我们可以从日志中发现,161/my-app
被识别为命令openshift-deploy
的参数,应该是--image=myimage
中定义的CMD
Error: unknown command "161/my-app" for "openshift-deploy"
Run 'openshift-deploy --help' for usage.
您必须展开 161/my-app
并根据它更新命令。
在Docker图像中总是定义了一个CMD,因此我们必须决定是否使用默认CMD:
如果使用默认CMD并想修改参数:Check this example
oc run nginx --image=nginx -- <arg1> <arg2> ... <argN>
如果使用新的 CMD 和参数:Check this Example
oc run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
我注意到你的问题中有两个信息,你可以在这里查看并在必要时更新问题:
文档 https://docs.openshift.com/container-platform/3.9/dev_guide/cron_jobs.html 提供了创建 cron 作业的详细信息。
要启动每 10 分钟执行一次构建的计划任务,我使用命令:
oc run run-build 161/my-app --image=myimage --restart=OnFailure --schedule='*/10 * * * *'
哪个returns:
cronjob.batch/run-build created
但是作业启动失败:
pod日志显示:
Error: unknown command "161/my-app" for "openshift-deploy"
Run 'openshift-deploy --help' for usage.
我是否配置了错误地启动 cron 作业的命令 (oc run run-build 161/my-app --image=myimage --restart=OnFailure --schedule='*/10 * * * *'
)?
您正在尝试使用 161/my-app
命令覆盖图像 CMD
/ARG
(这似乎无效)。
你应该使用:
oc run run-build --image=myimage --schedule='*/10 * * * *' \
--restart=OnFailure \
--command -- <YOUR COMMAND HERE>
其中 run-build
是您创建的 cronjob 的名称。
如果您想使用默认的 CMD
/ARG
构建在容器镜像中,只需省略 --command
标志及其值。
首先,要找到oc run
的完整文档并不容易,所以让我们与source code
由于已经创建了cronjob.batch/run-build
,构建是由kubernetes调度的,所以schedule部分可能没有问题。
现在的问题是图像 运行 失败的原因。
我们可以从日志中发现,161/my-app
被识别为命令openshift-deploy
的参数,应该是--image=myimage
Error: unknown command "161/my-app" for "openshift-deploy"
Run 'openshift-deploy --help' for usage.
您必须展开 161/my-app
并根据它更新命令。
在Docker图像中总是定义了一个CMD,因此我们必须决定是否使用默认CMD:
如果使用默认CMD并想修改参数:Check this example
oc run nginx --image=nginx -- <arg1> <arg2> ... <argN>
如果使用新的 CMD 和参数:Check this Example
oc run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
我注意到你的问题中有两个信息,你可以在这里查看并在必要时更新问题: