Airflow:如何通过 docker-compose.yml 安装 pip 包?

2024-06-19

如何通过 docker-compose 文件安装额外的 pip 包airflow https://airflow.apache.org/docs/apache-airflow/2.0.1/docker-compose.yaml?

我假设应该有一个标准功能来选择requirements.txt或者其他的东西。当检查他们的repo https://github.com/apache/airflow/blob/master/IMAGES.rst#airflow-docker-images,我确实看到了一些 ENV 变量,例如ADDITIONAL_PYTHON_DEPS这暗示我这应该是可能的,但是在 docker-compose 文件中设置这些实际上并没有安装库。

version: '3'
x-airflow-common:
  &airflow-common
  image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.0.1}
  environment:
    &airflow-common-env
    AIRFLOW__CORE__EXECUTOR: CeleryExecutor
    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
    AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://airflow:airflow@postgres/airflow
    AIRFLOW__CELERY__BROKER_URL: redis://:@redis:6379/0
    AIRFLOW__CORE__FERNET_KEY: ''
    AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'true'
    AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
    AIRFLOW__API__AUTH_BACKEND: 'airflow.api.auth.backend.basic_auth'
    AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'
    ADDITIONAL_PYTHON_DEPS: python-bitvavo-api

volumes:
    - ./dags:/opt/airflow/dags
    - ./logs:/opt/airflow/logs
    - ./plugins:/opt/airflow/plugins
    - ./requirements.txt:/requirements.txt

我缺少什么?


Airflow 文档中有一个非常详细的指南,介绍如何实现您想要的目标here https://airflow.apache.org/docs/docker-stack/build.html#building-the-image。根据您的要求,这可能就像使用扩展原始图像一样简单From创建新的 Dockerfile 时使用指令,或者您可能需要自定义映像以满足您的需求。

如果你选择扩展图像 https://airflow.apache.org/docs/docker-stack/build.html#extending-the-image你的新 Dockerfile 的方法将是这样的:

FROM apache/airflow:2.0.1
USER root
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
         build-essential my-awesome-apt-dependency-to-add \
  && apt-get autoremove -yqq --purge \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*
USER airflow
RUN pip install --no-cache-dir --user my-awesome-pip-dependency-to-add

然后你可以将类似的内容添加到 docker-compose 文件中:

...
version: "3"
x-airflow-common: &airflow-common
  build: . # this is optional
  image: ${AIRFLOW_IMAGE_NAME:-the_name_of_your_extended_image
  ...
...

最后,构建您的图像并使用 compose 将所有内容重新打开。请尝试查看文档以获取详细信息或完整解释。希望这对你有用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Airflow:如何通过 docker-compose.yml 安装 pip 包? 的相关文章

随机推荐

  • 使用 LWP::Agent 的 Perl JSON::RPC::Client

    我被要求不使用 JSON RPC Client 而是使用 LWP 进行调用 这是我的代码 Server usr bin perl use strict use lib use ServerLib use JSON RPC Server Da
  • php将多维数组内爆为制表符分隔行

    我有一个多维数组 BlockData 其中有 13 个维度和 n 个数组元素 我需要将此数组内爆回单个长字符串 其中元素由 n 换行和尺寸由 t tabs 我尝试过使用array map 功能没有成功 需要帮助来完成此任务 请帮忙 这可以使
  • Heroku 应用程序上的 Nodejs Express EACCES 0.0.0.0:80

    我正在尝试在他们的网站上新创建的 Heroku 应用程序上运行 Node 应用程序 我按照他们的步骤操作 但在显示应用程序状态时仍然遇到错误 我跟着Node js 入门 https devcenter heroku com articles
  • Python:scikit learn 中正态分布的特征选择

    我有一个pandasDataFrame 其索引是唯一用户标识符 与唯一事件对应的列以及值 1 已参加 0 未参加 或 NaN 未受邀请 不相关 相对于 NaN 该矩阵相当稀疏 有数百个事件 而大多数用户最多只被邀请参加数十个 我创建了一些额
  • 函数地址不是实际代码地址

    在 Visual Studio 2008 C 中调试一些代码时 我注意到函数指针变量中的地址不是函数本身的实际地址 这是一个外部 C 函数 int main void printaddr const char print debug sho
  • AttributeError:tkagg没有属性cursord

    我最近重新安装了 anaconda 将目录从管理员帐户转移到我的个人帐户 以前 我对下面的代码没有任何问题 import matplotlib backends backend tkagg as tkagg defaultcursor tk
  • 如何在经历生命周期销毁时关闭 Activity?

    android 关闭 完成活动并仍希望其完成的方式是什么onPause onStop and onDestroy 我知道Activity finish 但这只能保证调用onDestroy 不是另外两个 原因 根据android文档 数据库访
  • Visual Studio 2013 中的内存分析

    我想探索如何在我的应用程序中分配内存 我有 C 控制台应用程序并使用 Visual Studio 2013 Professional I go to Analyze gt 性能和诊断并选择 NET内存分配 结果我得到以下总结 图表中每次CP
  • jQuery DatePicker 在可滚动 div 中时不随 HTML 内容移动

    我的表单大小受到限制 并且溢出样式设置为滚动 该表单包含许多 DatePickers 如果我打开其中一个 DatePicker 然后滚动面板 使用滚轮将焦点保持在 DatePicker 上 使其保持打开状态 DatePicker 不会随其附
  • Angular 2 SPA Azure Active Directory JWT 问题

    想知道是否有 Azure Active Directory Angular 2 Adal 专家可以提供帮助 我的设置如下 具有三个应用程序注册的 Azure Active Directory 一种用于 Web API 一种用于 WPF 应用
  • 禁用 ASP.net 文本框而不实际禁用它?

    在我的 ASP Net 应用程序中 有一个文本框可以从CalendarExtender 填充文本框后 它会将该日期与表单上的另一个日期进行检查并显示modalpopupextender如果日期错误 则会弹出窗口 但是 我不想允许用户输入此文
  • 如何通过填充 NSDictionary 以 JSON 格式发送 UIImage

    我正在尝试使用 JSON 将数据发送到服务器 我可以使用我的对象和关键参数创建 NSDictionary 但我想发送我的图片 图片是UIImage NSDictionary mainJSON NSDictionary dictionaryW
  • 如何使用“*ngIf else”?

    我正在使用 Angular 并且我想使用 ngIf else 自版本 4 起可用 在此示例中 div content here div div other content here div 我怎样才能实现相同的行为ngIf else 角度
  • 如何使用 PowerMockito 模拟私有字段? [复制]

    这个问题在这里已经有答案了 作为重复项提出的解决方案不是 PowerMockito 解决方案 因此无法回答此问题 此外 这个问题在下面得到了合理的回答 我不知道这是否是重复的 但我肯定找不到有问题的项目 如果是 我一直期望这非常简单 因为反
  • 如何插入元素作为第一个子元素?

    我想在每次单击按钮时使用 jquery 添加一个 div 作为第一个元素 div div class child div some text div div class child div some text div div class c
  • Fortran 读取语句中的“end”是什么意思?

    什么是end 这段代码片段的意思是什么 read portNum 100 end 900 readline 附 我已经尝试用谷歌找到这个 但没有运气 用户3600286 直接引用自this pdf http www tomzap com n
  • 当我们在Android中通过GPS获取位置时,如何获取卫星名称或号码?

    我是android新手 我通过gps获取位置 我还在我们的代码中获取卫星号码 但我想获取用于获取位置的特定卫星名称或号码 我有很多谷歌 但没有得到适当的解决方案 我的问题是 1 It is possible to get a particu
  • sitecore 站点内嵌套虚拟目录或应用程序是否可能

    我想将 ASP NET Web 应用程序嵌套在 sitecore 站点中 如下所示
  • 在 iOS 中擦除绘图

    我正在开发一个绘图应用程序 我有一个UIBezierPath 我用它在touchesMoved中绘制 并将其转换为CGPath 然后在tCGplayer上绘制 这是我的代码 void touchesMoved NSSet touches w
  • Airflow:如何通过 docker-compose.yml 安装 pip 包?

    如何通过 docker compose 文件安装额外的 pip 包airflow https airflow apache org docs apache airflow 2 0 1 docker compose yaml 我假设应该有一个