Docker Compose安装和部署Airflow

要在Docker中安装和部署Airflow,您可以按照以下步骤进行。Airflow是一个流行的工作流管理工具,使用Docker可以轻松设置和运行Airflow环境。

1. 安装Docker和Docker Compose

首先,确保您的系统上已经安装了Docker和Docker Compose。如果没有,请参照官方指南安装:

2. 创建Airflow项目目录

创建一个用于存放Airflow相关文件的目录:

bash 复制代码
mkdir airflow-docker
cd airflow-docker

3. 创建Docker Compose文件

airflow-docker目录下创建一个docker-compose.yml文件,并将以下内容复制到文件中:

yaml 复制代码
version: '3.8'
services:
  airflow-db:
    image: postgres:13
    environment:
      POSTGRES_USER: airflow
      POSTGRES_PASSWORD: airflow
      POSTGRES_DB: airflow
    volumes:
      - postgres_data:/var/lib/postgresql/data

  airflow-webserver:
    image: apache/airflow:2.6.1
    restart: always
    depends_on:
      - airflow-db
    environment:
      AIRFLOW__CORE__EXECUTOR: LocalExecutor
      AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@airflow-db/airflow
      AIRFLOW__CORE__FERNET_KEY: ''
      AIRFLOW__CORE__LOAD_EXAMPLES: 'true'
    volumes:
      - ./dags:/opt/airflow/dags
    ports:
      - "8080:8080"
    command: webserver

  airflow-scheduler:
    image: apache/airflow:2.6.1
    restart: always
    depends_on:
      - airflow-db
      - airflow-webserver
    environment:
      AIRFLOW__CORE__EXECUTOR: LocalExecutor
      AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@airflow-db/airflow
      AIRFLOW__CORE__FERNET_KEY: ''
    volumes:
      - ./dags:/opt/airflow/dags
    command: scheduler

volumes:
  postgres_data:

4. 初始化Airflow元数据数据库

在启动Airflow之前,您需要初始化Airflow的元数据数据库。运行以下命令:

bash 复制代码
docker-compose up airflow-webserver airflow-scheduler

在服务启动后按 Ctrl+C 停止服务,然后运行数据库初始化命令:

bash 复制代码
docker-compose run airflow-webserver airflow db init

5. 启动Airflow

初始化完成后,使用以下命令启动Airflow服务:

bash 复制代码
docker-compose up -d

6. 访问Airflow Web UI

Airflow Web UI默认运行在8080端口。您可以通过浏览器访问:http://localhost:8080

默认用户名和密码可以在启动后通过Airflow CLI进行设置。

7. 使用Airflow

您现在可以在dags目录下添加DAG文件,Airflow会自动检测并显示在Web UI中。

8. 停止和清理

要停止Airflow服务,运行:

bash 复制代码
docker-compose down

要清理数据卷和容器,运行:

bash 复制代码
docker-compose down --volumes --remove-orphans

这个配置提供了一个基本的Airflow环境,您可以根据需要进一步定制。

相关推荐
shujudang4 分钟前
业务闭环视角下的营销自动化(MA)平台选型逻辑
大数据·运维·数据分析·自动化·营销自动化
要开心吖ZSH37 分钟前
AI医疗分诊与健康咨询助手agent开发——(4-2)从零到一:我给AI医疗分诊助手加了个“知识库大脑“,终于搞懂了RAG是什么
java·docker·agent·医疗·rag
希望奇迹很安静38 分钟前
数通基本实验
运维·服务器·网络
汪汪大队u1 小时前
【无标题】
运维·docker·kubernetes·prometheus
学术小白人3 小时前
第二届智能制造、机器人与自动化国际学术会议(IMRA 2026)
运维·人工智能·机器人·自动化·制造
吴声子夜歌3 小时前
Redis 3.x——集群运维
运维·数据库·redis
欧神附体1233 小时前
在虚拟机搭建本地仓库和网络仓库
linux·运维·服务器
是个西兰花4 小时前
Linux:深入解析Linux线程原理与实现
linux·运维·c++·线程·互斥锁
云泽8084 小时前
飞算 JavaAI 实战:如何自动化生成全流程追溯系统
运维·自动化·vibe coding·飞算javaai·飞算java ai炫技赛
运维大师4 小时前
【Linux运维极简教程】07-磁盘管理与LVM
linux·运维·服务器