当前位置: 首页 > 知识库问答 >
问题:

如何在Airflow上运行DockerOperator?

单喜
2023-03-14

我正在使用docker compose和气流图像puckel/docker气流设置一个新的气流服务器BashOperators和PythonOperator运行良好,但当我尝试使用DockerOperator时,没有名为“docker”的模块。

我需要如何更改我的docker-compose文件才能在我的docker中使用docker?

我试图在谷歌上查找错误消息,但没有一个建议的解决方案奏效。

这是我正在使用的< code>WebServer的docker-compose

webserver:
    image: puckel/docker-airflow:1.10.1
    build:
      context: https://github.com/puckel/docker-airflow.git#1.10.1
      dockerfile: Dockerfile
      args:
        AIRFLOW_DEPS: gcp_api,s3,docker        
    restart: always
    depends_on:
      - postgres
    environment:
      - LOAD_EX=n
      - EXECUTOR=Local
      - FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
    volumes:
      - ./LOCALPATHTODAGS/dags:/usr/local/airflow/dags
    ports:
      - "8080:8080"
    command: webserver

我的最终目标是能够从气流管道中触发本地图像的 Docker 容器。

共有2个答案

杭镜
2023-03-14

“docker”实际上也是一个Python模块,可能在DockerOperator的源代码中导入。假设您在需求中安装了依赖项。txt文件,您可以将docker==4.1.0>添加到您的需求中。txt文件,该文件应与您的Dockerfile>位于同一目录中。

因此,在您的泊坞文件中,您需要:

COPY requirements.txt requirements.txt
USER root
RUN pip install -r requirements.txt

在您的需求文件中,您需要:

docker==4.1.0  # Other versions probably also work
凌运恒
2023-03-14

您可以使用两种方法:

  1. before_script添加到当前docker compose:
webserver:
   (...)
   before_script:
   - pip install docker 
 类似资料:
  • 问题内容: 运行Airflow的常规说明不适用于Windows环境: Airflow实用程序在命令行中不可用,我在其他地方找不到要手动添加的实用程序。Airflow如何在Windows上运行? 问题答案: 您可以在Windows中激活,并直接按照本教程进行操作。我能够按照上面的步骤启动并成功运行。 安装完成后,请进行编辑以将所有配置指向Windows系统中的某个位置,而不是lxss(ubuntu)

  • 问题内容: 地球人你好!我正在使用Airflow计划和运行Spark任务。我这次发现的所有内容都是Airflow可以管理的python DAG。 DAG示例: 问题是我的Python代码不好,并且有一些用Java编写的任务。我的问题是如何在python DAG中运行Spark Java jar?或者,也许还有其他方法吗?我发现了spark提交:http : //spark.apache.org/d

  • 如何将Airflow dag配置为每天在指定时间执行,无论发生什么,就像crons一样。 我知道使用 TimeSensor 可以获得类似的行为,但在这种情况下,这取决于传感器任务,并且可能与 dag 执行时间冲突。 示例:对于传感器方法,如果我让传感器在0小时15分钟运行,但如果dag在稍后执行,则我的任务会延迟,因此即使对于传感器方法,我也需要确保Dag在正确的时间执行。 那么如何确保Dag在指

  • 我已经在Ubuntu 14.04上安装了tensorflow的GPU版本。 我在一个GPU服务器上,在那里Tenorflow可以访问可用的GPU。 我想在CPU上运行tenorflow。 通常我可以使用env CUDA\u VISIBLE\u DEVICES=0在0号GPU上运行。 如何在CPU之间进行选择? 我对用tf重写代码不感兴趣。设备(“/cpu:0”):

  • 刚开始玩jdk9 - 并且有点卡在一开始: < li >下载并解压缩了eclipse-Java-neon-m4a-win32 < li >已安装java 9支持(通过市场中的免打扰) < li >下载并安装了jdk9u99(只有jdk,没有公共jre) 此时,我可以在默认的Java(8u 60)上运行eclipse,既可以使用JRE/JDK(eclipse . ini中的/out vm参数),也可

  • 我在让机器人上网时遇到了一些困难。当我运行文件时,bot在我需要的服务器上不在线。在使用pycharm之前,由于计算机上的许多错误,我迁移到了VSCode。在pycharm中,它正常工作,但现在在VSCode中,我无法使它工作。有人能帮我吗? 变量token和canal_id在我的代码中正确配置,我已经在discord上检查了我的应用程序。 代码: