启动自定义 Airflow Docker 映像 GROUP_OR_COMMAND 时出错

Vin*_*son 6 docker airflow

我使用以下 Dockerfile 创建了一个自定义映像:

\n
FROM apache/airflow:2.1.1-python3.8\nUSER root\n\nRUN apt-get update \\\n  && apt-get -y install gcc gnupg2 \\\n  && curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \\\n  && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list\n\nRUN apt-get update \\\n  && ACCEPT_EULA=Y apt-get -y install msodbcsql17 \\\n  && ACCEPT_EULA=Y apt-get -y install mssql-tools\n\nRUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc \\\n  && echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc \\\n  && source ~/.bashrc\n\nRUN apt-get -y install unixodbc-dev \\\n  && apt-get -y install python-pip \\\n  && pip install pyodbc\n\nRUN echo -e \xe2\x80\x9cAIRFLOW_UID=$(id -u) \\nAIRFLOW_GID=0\xe2\x80\x9d > .env\n\nUSER airflow\n
Run Code Online (Sandbox Code Playgroud)\n

图像创建成功,但当我尝试运行它时,出现此错误:\n“气流命令错误:需要以下参数:GROUP_OR_COMMAND,请参阅上面的帮助。”

\n

我尝试使用 --user 提供组 ID,但我无法弄清楚。

\n

如何启动这个自定义 Airflow Docker 镜像?

\n

谢谢!

\n

Jar*_*iuk 2

首先,这一行是错误的:

\n

RUN echo -e \xe2\x80\x9cAIRFLOW_UID=$(id -u) \\nAIRFLOW_GID=0\xe2\x80\x9d > .env

\n

如果您使用 Docker Compose 运行它(我假设您从https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html获取它),那么您应该在“主机”上运行它机器,不在图像中。删除该行,没有任何效果。

\n

其次 - 这实际上取决于您运行的“命令”。您收到的“GROUP_OR_COMMAND”消息是“airflow”命令的输出。您尚未复制命令的整个输出,但这是当您尝试运行气流而不告诉它要做什么时收到的消息。当您运行图像时,默认情况下您将运行该airflow命令,该命令具有许多可以执行的子命令。因此,“请参阅上面的帮助”消息告诉您应该做的事情 - 查看帮助并查看您想要运行(并可能运行它)的子命令。

\n
docker run -it apache/airflow:2.1.2 \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      jobs           Manage jobs\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 optionally 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\nairflow command error: the following arguments are required: GROUP_OR_COMMAND, see help above.\n
Run Code Online (Sandbox Code Playgroud)\n