gpt4 book ai didi

docker - `docker run` 作为级长任务

转载 作者:行者123 更新时间:2023-12-02 17:59:28 25 4
gpt4 key购买 nike

我应该在 Prefect 流程中作为任务运行的实际工作负载都打包为 docker 镜像。所以流基本上只是“运行这个容器,然后运行那个容器”。
但是,我找不到任何关于如何轻松启动 docker 容器作为任务的示例。 基本上,我只需要 docker run从一个流。
我知道 https://docs.prefect.io/api/latest/tasks/docker.html并尝试了 CreateContainer 的各种组合和 StartContainer ,但没有任何运气。

最佳答案

对于您的用例,使用 Prefect 任务库中的 Docker 任务可能如下所示:

from prefect import task, Flow
from prefect.tasks.docker import (
CreateContainer,
StartContainer,
GetContainerLogs,
WaitOnContainer,
)

create = CreateContainer(image_name="prefecthq/prefect", command="echo 12345")
start = StartContainer()
wait = WaitOnContainer()
logs = GetContainerLogs()


@task
def see_output(out):
print(out)


with Flow("docker-flow") as flow:
container_id = create()
s = start(container_id=container_id)
w = wait(container_id=container_id)

l = logs(container_id=container_id)
l.set_upstream(w)

see_output(l)

flow.run()
上面的这段代码将创建一个容器,启动它,等待完成,检索日志,然后打印 echo 12345 的输出到命令行。
或者,您也可以直接在您自己的任务中使用 Docker Python 客户端 https://docker-py.readthedocs.io/en/stable/api.html#module-docker.api.container

关于docker - `docker run` 作为级长任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62509406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com