Matthew Blau
03/11/2021, 2:32 PMMatthew Blau
03/11/2021, 2:32 PMcontainer = CreateContainer(
image_name="integration_app:latest",
host_config={"binds": ["/home/mblau/projects/integration/:/app"]},
volumes= "/home/mblau/projects/ispottv-integration/:/app",
environment={f"PREFECT__CONTEXT__SECRETS__{k}": v for k, v in config.context.secrets.items()},
command= "python3 /app/integration.py"
)
start = StartContainer()
logs = GetContainerLogs(trigger=always_run)
status_code = WaitOnContainer()
## set task dependencies via functional API
with Flow("Run a Prefect Flow in Docker") as flow:
start_container = start(container_id=container)
code = status_code(container_id=container, upstream_tasks=[start_container])
collect_logs = logs(container_id=container, upstream_tasks=[code])
## run flow and print logs
#flow_state = flow.run()
print("=" * 30)
print("Container Logs")
print("=" * 30)
from prefect import config
#flow.run_config = LocalRun(env={f"PREFECT__CONTEXT__SECRETS__{k}": v for k, v in config.context.secrets.items()})
#print(flow_state.result[collect_logs].result)
flow.register(project_name= "Test Project")
flow.visualize()
Matthew Blau
03/11/2021, 2:34 PMMatthew Blau
03/11/2021, 2:37 PMMatthew Blau
03/11/2021, 2:41 PM