【问题标题】:Why extending docker-airflow image, making my scheduler container unhealthy?为什么扩展 docker-airflow 映像,使我的调度程序容器不健康?
【发布时间】:2021-06-16 10:33:59
【问题描述】:


我正在使用官方 docker yml 文件运行气流。 official documentation
我使用以下 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


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


unhealth scheduler container after extending the official image


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

{
  "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"
    }

提前致谢!

【问题讨论】:

  • 请仔细阅读您提供的链接中的所有信息,其中有一句话:此文件使用最新的 Airflow 映像 (apache/airflow)。如果您需要安装新的 Python 库或系统库,您可以自定义和扩展它。
  • @Howaboutnope 我确实经历了这一点并扩展了我的图像,但是,在构建了 compose 文件之后,我的计划容器变得不健康了。
  • 从不健康的容器中添加更多日志docker inspect --format "{{json .State.Health }}" <container name> | jq
  • @JonSG 将日志添加到问题中。

标签: python docker airflow


【解决方案1】:

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

在我的扩展图像中,我使用的是气流 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2020-09-19
    • 2019-05-11
    • 2019-08-11
    • 2021-11-08
    • 1970-01-01
    相关资源
    最近更新 更多