在 Kubeflow 管道上使用 kfp.dls.containerOp() 到 运行 多个脚本
Using kfp.dls.containerOp() to run multiple scripts on Kubeflow Pipelines
我一直在使用 Kubeflow dsl 容器操作命令 运行 python 我的 Kubeflow 管道自定义脚本。我的配置看起来像这样:
def test_container_op():
input_path = '/home/jovyan/'
return dsl.ContainerOp(
name='test container',
image="<image name>",
command=[
'python', '/home/jovyan/test.py'
],
file_outputs={
'modeule-logs' : input_path + 'output.log'
}
)
现在,我还想在同一个容器中 运行 一个名为 deploy.sh
的 bash 脚本。我还没有看到这样的例子。有没有类似
command = [
'/bin/bash', '/home/jovyan/deploy.sh',
'python', '/home/jovyan/test.py'
]
不确定是否可行。非常感谢您的帮助。
Kubeflow 作业只是一个 Kubernetes 作业,因此您只能将 Kubernetes 作业入口点作为单个命令。
但是,您仍然可以将多个命令链接到一个 sh
命令中:
sh -c "echo 'my first job' && echo 'my second job'"
因此您的 kubeflow 命令可以是:
command = [
'/bin/sh', '-c', '/home/jovyan/deploy.sh && python /home/jovyan/test.py'
]
我一直在使用 Kubeflow dsl 容器操作命令 运行 python 我的 Kubeflow 管道自定义脚本。我的配置看起来像这样:
def test_container_op():
input_path = '/home/jovyan/'
return dsl.ContainerOp(
name='test container',
image="<image name>",
command=[
'python', '/home/jovyan/test.py'
],
file_outputs={
'modeule-logs' : input_path + 'output.log'
}
)
现在,我还想在同一个容器中 运行 一个名为 deploy.sh
的 bash 脚本。我还没有看到这样的例子。有没有类似
command = [
'/bin/bash', '/home/jovyan/deploy.sh',
'python', '/home/jovyan/test.py'
]
不确定是否可行。非常感谢您的帮助。
Kubeflow 作业只是一个 Kubernetes 作业,因此您只能将 Kubernetes 作业入口点作为单个命令。
但是,您仍然可以将多个命令链接到一个 sh
命令中:
sh -c "echo 'my first job' && echo 'my second job'"
因此您的 kubeflow 命令可以是:
command = [
'/bin/sh', '-c', '/home/jovyan/deploy.sh && python /home/jovyan/test.py'
]