Mohamed Zaki
08/06/2025, 4:12 PMMarvin
08/06/2025, 4:12 PMMarvin
08/06/2025, 4:13 PMprefect-dockerawaitpython
from prefect import flow, get_run_logger
from prefect_docker.images import pull_docker_image
from prefect_docker.containers import (
    create_docker_container,
    start_docker_container,
    get_docker_container_logs,
    stop_docker_container,
    remove_docker_container,
)
@flow
async def docker_flow():
    logger = get_run_logger()
    
    # Await all async operations
    await pull_docker_image("python:3.11-slim", "latest")
    
    container = await create_docker_container(
        image="python:3.11-slim",
        command="echo 'hello world!' && sleep 60"
    )
    
    await start_docker_container(container_id=container.id)
    logs = await get_docker_container_logs(container_id=container.id)
    <http://logger.info|logger.info>(logs)
    
    await stop_docker_container(container_id=container.id)
    await remove_docker_container(container_id=container.id)
    
    return containerasyncawaitimagecommandawait docker_flow()python
from asyncio import run
run(docker_flow())container