Docker compose Airflow成功地从S3写入和读取数据,但赢得了';t在docker compose上加载S3日志

Docker compose Airflow成功地从S3写入和读取数据,但赢得了';t在docker compose上加载S3日志,docker-compose,airflow,Docker Compose,Airflow,我正在使用puckle的airflow docker()和docker compose Local Executor。该项目是通过EC2实例上的CI/CD部署的,因此我的气流不会在持久服务器上运行。(每次推送主机时都会重新启动它)。我知道我失去了一些很好的特性,但在我的设置中,一切都是由bash脚本和/或环境变量配置的。 我的设置与此答案设置类似: 我运行的是1.10.6版,因此不再需要添加config/\uu init\uuuuuu.py和config/log\u class.py的旧方法 我

我正在使用puckle的airflow docker()和docker compose Local Executor。该项目是通过EC2实例上的CI/CD部署的,因此我的气流不会在持久服务器上运行。(每次推送主机时都会重新启动它)。我知道我失去了一些很好的特性,但在我的设置中,一切都是由bash脚本和/或环境变量配置的。 我的设置与此答案设置类似:

我运行的是1.10.6版,因此不再需要添加
config/\uu init\uuuuuu.py
config/log\u class.py
的旧方法

我对原始存储库代码所做的更改:
  • 我添加了一些环境变量,并将
    docker compose-f docker compose LocalExecutor上的构建模式更改为在S3上写入/保存日志,并从本地Dockerfile构建:

    webserver:
        build: .
        environment:
            - AIRFLOW__CORE__REMOTE_LOGGING=True
            - AIRFLOW__CORE__REMOTE_LOG_CONN_ID=aws_default
            - AIRFLOW__CORE__REMOTE_BASE_LOG_FOLDER=s3://path/to/logs
            - AIRFLOW_CONN_AWS_DEFAULT=s3://key:password
    
  • 我更改了第59行的
    Dockerfile
    以安装s3插件,如下所示:

    && pip install apache-airflow[s3,crypto,celery,password,postgres,hive,jdbc,mysql,ssh${AIRFLOW_DEPS:+,}${AIRFLOW_DEPS}]==${AIRFLOW_VERSION} \
    
  • 这些配置工作正常,从S3成功写入和读取日志,如下所示:

    我的问题是: 如果我运行
    docker compose down
    docker compose up
    时,UI将显示为dag以前从未运行过(UI不会加载dag的远程日志):


    结果表明,运行的事件不是从日志文件重建的。所有元数据(运行事件、用户、xconn等)都存储在外部数据库中。 一旦配置了与外部数据库的连接,一切正常