我具有以下层次结构:
-airflow
-dags
-test.py
-deployment
-dockerfile
-docker compose
-scripts
-requirements.txt
test.py
文件使用scripts
目录中的函数。一些脚本具有外部导入语句,例如import boto3
。我认为这就是问题所在,因为当我运行气流Web服务器时,我看到所有不需要这些外部软件包的DAG都已加载,但是需要它们的DAG却无法加载:
Broken DAG: [/usr/local/airflow/dags/test.py] No module named 'boto3'
docker compose
文件看起来像这样:
version: '3'
services:
webserver:
build: .
我试图在dockerfile
中添加类似内容:
FROM puckel/docker-airflow:1.10.9
WORKDIR /airflow
COPY requirements.txt /airflow
RUN pip install -U pip && pip install -r requirements.txt
但是这些软件包似乎没有安装。每当我启动Web服务器(泊坞窗组成)时,如何安装requirements.txt
?
答案 0 :(得分:1)
可能和...一样简单
WORKDIR /airflow
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
您可能还必须指示Docker构建步骤。我认为docker-compose build .
或docker-compose up --no-cache
...但这是基于松散的记忆