Airflow:Docker-撰写:"You are running pip as root Please use user to run pip"
Airflow:Docker-Compose:"You are running pip as root Please use user to run pip"
要求:运行本地Airflow使用官方docker-compose with Airflow version 2.3.0
问题:“您正在 运行ning pip 作为 root 请使用用户 运行 pip”
气流版本 2.3.0
OS - macOS
我可以 运行 使用 2.2.4 但不能使用 2.3.0
还有 运行 下面的命令也在 运行ning docker-compose up airflow-init
之前
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env
Docker-撰写
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.0/docker-compose.yaml'
Docker文件包含:
用户:“${AIRFLOW_UID:-50000}:0
当你执行 "echo -e "AIRFLOW_UID=$(id -u)" > .env"
AIRFLOW_UID 替换为您的 OS 用户。但似乎 docker 在 MacOS 中没有得到 AIRFLOW_UID 变量,所以 docker 把它放在 AIRFLOW_UID=0 上。并且来自 root 用户的 运行。在 2.3.0 中你不能通过 root 用户安装 pip 包
来自气流文档:
For other operating systems, you will get warning that AIRFLOW_UID is
not set, but you can ignore it. You can also manually create the .env
file in the same folder your docker-compose.yaml is placed with this
content to get rid of the warning:
AIRFLOW_UID=50000
所以尝试将 AIRFLOW_UID=50000 添加到您的 .env.
或者从 .env 中删除 AIRFLOW_UID。 Docker 将 AIRFLOW_UID=50000 作为 Docker 文件中的默认变量。
//英语不好请见谅
仅供参考,这个错误是在 2.3.0 中引入的,当时他们设置了一个保护措施以确保 pip 永远不会 运行 作为 root。问题是 init 容器在做它的事情之前从不切换到 AIRFLOW_UID 用户,但它确实安装了 _PIP_ADDITIONAL_REQUIREMENTS
因为它只是所有容器 运行 的通用代码......甚至尽管 init 容器确实不需要额外的要求。因此,简单的解决方法是您可以通过在初始化容器的环境部分的 docker-compose.yaml 中添加 _PIP_ADDITIONAL_REQUIREMENTS: ''
来显式覆盖初始化容器的环境变量。
您可以在此处查看采用该确切方法的官方修复:https://github.com/apache/airflow/pull/23517/files
要求:运行本地Airflow使用官方docker-compose with Airflow version 2.3.0 问题:“您正在 运行ning pip 作为 root 请使用用户 运行 pip”
气流版本 2.3.0 OS - macOS
我可以 运行 使用 2.2.4 但不能使用 2.3.0
还有 运行 下面的命令也在 运行ning docker-compose up airflow-init
mkdir -p ./dags ./logs ./plugins
echo -e "AIRFLOW_UID=$(id -u)" > .env
Docker-撰写 curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.3.0/docker-compose.yaml'
Docker文件包含: 用户:“${AIRFLOW_UID:-50000}:0
当你执行 "echo -e "AIRFLOW_UID=$(id -u)" > .env" AIRFLOW_UID 替换为您的 OS 用户。但似乎 docker 在 MacOS 中没有得到 AIRFLOW_UID 变量,所以 docker 把它放在 AIRFLOW_UID=0 上。并且来自 root 用户的 运行。在 2.3.0 中你不能通过 root 用户安装 pip 包
来自气流文档:
For other operating systems, you will get warning that AIRFLOW_UID is not set, but you can ignore it. You can also manually create the .env file in the same folder your docker-compose.yaml is placed with this content to get rid of the warning:
AIRFLOW_UID=50000
所以尝试将 AIRFLOW_UID=50000 添加到您的 .env.
或者从 .env 中删除 AIRFLOW_UID。 Docker 将 AIRFLOW_UID=50000 作为 Docker 文件中的默认变量。
//英语不好请见谅
仅供参考,这个错误是在 2.3.0 中引入的,当时他们设置了一个保护措施以确保 pip 永远不会 运行 作为 root。问题是 init 容器在做它的事情之前从不切换到 AIRFLOW_UID 用户,但它确实安装了 _PIP_ADDITIONAL_REQUIREMENTS
因为它只是所有容器 运行 的通用代码......甚至尽管 init 容器确实不需要额外的要求。因此,简单的解决方法是您可以通过在初始化容器的环境部分的 docker-compose.yaml 中添加 _PIP_ADDITIONAL_REQUIREMENTS: ''
来显式覆盖初始化容器的环境变量。
您可以在此处查看采用该确切方法的官方修复:https://github.com/apache/airflow/pull/23517/files