You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow中DockerSwarmOperator任务执行完成后持续处于运行状态求助

问题:Airflow DockerSwarmOperator任务持续处于Running状态,容器已正常执行完成

我在Airflow中配置了一个使用DockerSwarmOperator的任务,用于运行短期容器。容器已无错误执行完成(期望状态:Shutdown),但Airflow中的任务却一直处于“Running”状态,无法结束。

环境信息

  • 服务器:Oracle Linux 9
  • Airflow版本:2.4.2
  • Docker部署在Linux服务器上

相关代码

start_dag = DummyOperator(
    task_id='start_dag'
)
end_dag = DummyOperator(
    task_id='end_dag'
)
hop = DockerSwarmOperator(
    task_id='Job_exec_HOP',
    image='apache/hop',
    api_version='auto',
    auto_remove=True,
    environment= {
        'HOP_RUN_PARAMETERS': 'INPUT_DIR=',
        'HOP_LOG_LEVEL': 'Basic',
        'HOP_FILE_PATH': '${PROJECT_HOME}/J01_BIT_DW_VENTAS_NAVEGADOR.hwf',
        'HOP_PROJECT_FOLDER': '/files/INDUTOP_BI_ETL',
        'HOP_PROJECT_NAME': 'INDUTOP_BI_ETL',
        'HOP_SHARED_JDBC_FOLDER': '/files/JDBC_FOLDER',
        'HOP_RUN_CONFIG': 'local'
    },
    docker_url="unix://var/run/docker.sock",
    network_mode="bridge",
    mounts=[Mount(source='/mnt/hop_bi_etl/hopdata', target='/files', type='bind')],
    force_pull=False
)

start_dag >> hop >> end_dag

解决方法

1. 修正Docker套接字路径

docker_url参数存在路径错误,正确的Unix套接字路径需要三个斜杠:

docker_url="unix:///var/run/docker.sock"

错误路径会导致Airflow无法正常连接Docker API,无法获取容器/服务的状态更新,进而持续判定任务处于运行状态。

2. 调整auto_remove参数

将auto_remove=True改为auto_remove=False:

auto_remove=False

当容器被自动删除后,Airflow无法再查询到容器状态,会一直等待任务结束。后续可通过docker system prune等命令定期清理终止的容器。

3. 赋予Airflow Worker Docker权限

确保运行Airflow Worker的用户属于docker组,执行以下命令添加权限:

usermod -aG docker airflow

添加后重启Airflow Worker服务,否则Worker无法访问Docker套接字获取容器状态。

4. 显式指定服务等待状态

在DockerSwarmOperator中添加statuses参数,指定需要等待的服务终止状态:

statuses=["complete"]

Airflow默认可能仅监听running状态,显式指定complete状态可让Operator正确识别任务完成。

5. 检查Swarm服务状态

手动查看Swarm服务的运行状态,确认服务是否真的已完成:

docker service ls
docker service ps <service-name>

若服务卡在异常状态,可手动清理服务,同时检查Swarm集群的健康状态。

内容的提问来源于stack exchange,提问作者Daniel Capone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:52:47