首页 > 解决方案 > 为什么扩展 docker-airflow 映像,使我的调度程序容器不健康?

问题描述


我正在使用官方 docker yml 文件运行气流。官方文档
我使用以下 dockerfile 扩展了我的图像:

FROM apache/airflow:2.0.2
USER root
RUN apt-get update
USER airflow
RUN pip install --no-cache-dir plotly==4.9
RUN pip install --no-cache-dir svglib==1.1.0
RUN pip install --no-cache-dir fpdf2


这样做导致我的调度程序容器运行不正常
我该如何解决这个问题?


扩展官方镜像后的不健康调度器容器


这是我从容器中获取的日志:

{
  "Status": "unhealthy",
  "FailingStreak": 7,
  "Log": [
    {
      "Start": "2021-06-16T12:53:53.059066625Z",
      "End": "2021-06-16T12:53:53.843581477Z",
      "ExitCode": 2,
      "Output": "\nairflow command error: argument GROUP_OR_COMMAND: invalid choice: 'jobs' (choose from 'celery', 'cheat-sheet', 'config', 'connections', 'dags', 'db', 'info', 'kerberos', 'kubernetes', 'plugins', 'pools', 'providers', 'roles', 'rotate-fernet-key', 'scheduler', 'sync-perm', 'tasks', 'users', 'variables', 'version', 'webserver'), see help above.\nusage: airflow [-h] GROUP_OR_COMMAND ...\n\npositional arguments:\n  GROUP_OR_COMMAND\n\n    Groups:\n      celery         Celery components\n      config         View configuration\n      connections    Manage connections\n      dags           Manage DAGs\n      db             Database operations\n      kubernetes     Tools to help run the KubernetesExecutor\n      pools          Manage pools\n      providers      Display providers\n      roles          Manage roles\n      tasks          Manage tasks\n      users          Manage users\n      variables      Manage variables\n\n    Commands:\n      cheat-sheet    Display cheat sheet\n      info           Show information about current Airflow and environment\n      kerberos       Start a kerberos ticket renewer\n      plugins        Dump information about loaded plugins\n      rotate-fernet-key\n                     Rotate encrypted connection credentials and variables\n      scheduler      Start a scheduler instance\n      sync-perm      Update permissions for existing roles and DAGs\n      version        Show the version\n      webserver      Start a Airflow webserver instance\n\noptional arguments:\n  -h, --help         show this help message and exit\n"
    }

提前致谢!

标签: pythondockerairflow

解决方案


我找到了解决我的问题的方法。

在我的扩展图像中,我使用的是气流 2.0.2,它不兼容。升级到气流 2.1.0 解决了我的问题。

FROM apache/airflow:2.1.0
USER root
RUN apt-get update \
  && apt-get install -y --no-install-recommends \
         build-essential libopenmpi-dev \
  && apt-get autoremove -yqq --purge \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*
RUN apt-get update
USER airflow
RUN pip install --no-cache-dir plotly==4.9
RUN pip install --no-cache-dir svglib==1.1.0
RUN pip install --no-cache-dir fpdf2

推荐阅读