在DAG中,我使用的是一个DockerOperator,在其中我需要挂载一个临时目录来存储一些数据。容器必须为这个临时目录在主机上使用特定的路径,所以我尝试使用DockerOperator的“DockerOperator”参数,但这是行不通的。
考虑以下DAG示例:
from airflow import DAG
from airflow.providers.docker.operators.docker import DockerOperator
from datetime import datetime
with DAG(dag_id="test_v1",
start_date=datetime(2022,7,10),
catchup=False) as dag:
t = DockerOperator(
task_id='my_job',
api_version='auto',
image="debian:11-slim",
host_tmp_dir="/tmp",
tmp_dir="/data",
mount_tmp_dir=True,
command = ["ls", "/data"],
auto_remove='force'
)在这个例子中,我希望在日志中找到我的主机的目录/tmp的内容(它不是空的),但是日志是空的(容器中的/data = dir /data是空的,所以没有进行映射)。
我用的是气流2.3.3。
也许我漏掉了什么,你有什么主意吗?
发布于 2022-07-25 17:02:53
我找到了解释。实际上,host_tmp_dir不是将直接挂载在容器中的主机目录。它是一个主机目录,其中将创建一个临时目录并将其挂载在容器中。
https://stackoverflow.com/questions/73089228
复制相似问题