Skip to content

vincentdo/docker-airflow

 
 

Repository files navigation

docker-airflow

CircleCI branch Docker Build Status

Docker Hub Docker Pulls Docker Stars

This repository contains Dockerfile of apache-airflow for Docker's automated build published to the public Docker Hub Registry.

Informations

Build

For example, if you need to install Extra Packages, edit the Dockerfile and then build it.

    python build-airflow-image.py

Usage

By default we use the LocalExecutor:

    docker-compose -f docker-compose-LocalExecutor.yml up -d

Eventually we might want to add support for CeleryExecutor at some point. The original repo have support for this via:

    docker-compose -f docker-compose-CeleryExecutor.yml up -d

If you want to use Ad hoc query, make sure you've configured connections: Go to Admin -> Connections and Edit "postgres_default" set this values (equivalent to values in airflow.cfg/docker-compose*.yml) :

  • Host : postgres
  • Schema : airflow
  • Login : airflow
  • Password : airflow

For encrypted connection passwords (in Local or Celery Executor), you must have the same fernet_key. By default docker-airflow generates the fernet_key at startup, you have to set an environment variable in the docker-compose (ie: docker-compose-LocalExecutor.yml) file to set the same key accross containers. To generate a fernet_key :

    python -c "from cryptography.fernet import Fernet; FERNET_KEY = Fernet.generate_key().decode(); print FERNET_KEY"

Check Airflow Documentation

Install custom python package

  • Common dependency between this module and parent module should be added to the parent's "requirements.txt". These dependencies will be copied and installed on the container image by the build script
  • Create a file "airflow-requirements.txt" with the desired python modules
  • Mount this file as a volume -v $(pwd)/airflow-requirements.txt:/airflow-requirements.txt
  • The entrypoint.sh script execute the pip install command (with --user option)

UI Links

Scale the number of workers

Easy scaling using docker-compose:

    docker-compose scale worker=5

This can be used to scale to a multi node setup using docker swarm.

Wanna help?

Fork, improve and PR. ;-)

About

Docker Apache Airflow

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 51.4%
  • Python 48.6%