AirFlow 1.10, puckel/docker-airflow:1.10.9, добавить логин и пароль на админку AirFlow

Всем привет.

Есть известный puckel/docker-airflow:1.10.9 докер-образ для AirFlow 1.10.

version: '2.1'
services:
    redis:
        image: 'redis:5.0.5'
        # command: redis-server --requirepass redispass

    postgres:
        image: postgres:9.6
        environment:
            - POSTGRES_USER=airflow
            - POSTGRES_PASSWORD=airflow
            - POSTGRES_DB=airflow
            - PGDATA=/var/lib/postgresql/data/pgdata
        volumes:
            - ./pgdata:/var/lib/postgresql/data/pgdata
        ports:
            - "5432:5432"

    webserver:
        image: puckel/docker-airflow:1.10.9
        restart: always
        depends_on:
            - postgres
            - redis
        env_file:
            - .env
        environment:
            - LOAD_EX=n
            - FERNET_KEY=46BKJoQYlPPOexq0OhDZnIlNepKFf87WFwLbfzqDDho=
            - EXECUTOR=Celery
            # - POSTGRES_USER=airflow
            # - POSTGRES_PASSWORD=airflow
            # - POSTGRES_DB=airflow
            # - REDIS_PASSWORD=redispass
        volumes:
            - ./airflow/dags:/usr/local/airflow/dags
            # Uncomment to include custom plugins
            - ./airflow/plugins:/usr/local/airflow/plugins
            - ./logs:/usr/local/airflow/logs
            - ./requirements.txt:/requirements.txt
        ports:
            - "8080:8080"
        command: webserver
        healthcheck:
            test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
            interval: 30s
            timeout: 30s
            retries: 3

    flower:
        image: puckel/docker-airflow:1.10.9
        restart: always
        depends_on:
            - redis
        environment:
            - EXECUTOR=Celery
            # - REDIS_PASSWORD=redispass
        ports:
            - "5555:5555"
        command: flower

    pgadmin-compose:
        image: dpage/pgadmin4
        environment:
            PGADMIN_DEFAULT_EMAIL: "[email protected]"
            PGADMIN_DEFAULT_PASSWORD: "test123!"
        ports:
            - 16543:80
        depends_on:
            - postgres

    scheduler:
        image: puckel/docker-airflow:1.10.9
        restart: always
        depends_on:
            - webserver
        volumes:
            - ./airflow/dags:/usr/local/airflow/dags
            # Uncomment to include custom plugins
            - ./airflow/plugins:/usr/local/airflow/plugins
            - ./logs:/usr/local/airflow/logs
            - ./requirements.txt:/requirements.txt
        environment:
            - LOAD_EX=n
            - FERNET_KEY=46BKJoQYlPPOexq0OhDZnIlNepKFf87WFwLbfzqDDho=
            - EXECUTOR=Celery
            # - POSTGRES_USER=airflow
            # - POSTGRES_PASSWORD=airflow
            # - POSTGRES_DB=airflow
            # - REDIS_PASSWORD=redispass
        command: scheduler

    worker:
        image: puckel/docker-airflow:1.10.9
        restart: always
        depends_on:
            - scheduler
        volumes:
            - ./airflow/dags:/usr/local/airflow/dags
            # Uncomment to include custom plugins
            - ./airflow/plugins:/usr/local/airflow/plugins
            - ./logs:/usr/local/airflow/logs
            - ./requirements.txt:/requirements.txt
        environment:
            - FERNET_KEY=46BKJoQYlPPOexq0OhDZnIlNepKFf87WFwLbfzqDDho=
            - EXECUTOR=Celery
            # - POSTGRES_USER=airflow
            # - POSTGRES_PASSWORD=airflow
            # - POSTGRES_DB=airflow
            # - REDIS_PASSWORD=redispass
        command: worker

Не могу понять какой нужно добавить параметр, чтобы в админку можно было заходить по логину и паролю. Кто-то решал такое?


Ответы (1 шт):

Автор решения: asanisimov

Вообще по умолчанию лог/пас - airflow/airflow, а не свободный доступ. Пользователи задаются в базе данных при инциализации .

airflow db init

airflow users create \
    --username admin \
    --firstname Peter \
    --lastname Parker \
    --role Admin \
    --email [email protected]

Так же можно передать environments но это не рекомендуется на проде:

_AIRFLOW_WWW_USER_USERNAME
_AIRFLOW_WWW_USER_PASSWORD

Либо через веб интерфейс security -> List users -> +

Плюс я бы посоветовал бы Вам все таки использовать образ apache/airflow:{version} и перейти на версию 2+. И не храните серетные данные в открытов виде в docker-compose.

→ Ссылка