Sign inSign up

sql4mpp/dand

By sql4mpp

•Updated 8 months ago

airflow & jupyter debug & run

Image
Data science
Databases & storage
0

1.8K

sql4mpp/dand repository overview

This repository include airflow (locally executor) & jupyter notebook

Create two files on disk

and run it

docker compose up

port 9080 Airflow (admin/admin123) port 9088 Jupyter (password admin123) port 9432 Postgres (airflow/airflow database airflow)

create_auth_file.py

import warnings
warnings.filterwarnings('ignore', category=DeprecationWarning, module='airflow.security.permissions')
from airflow.providers.fab.auth_manager.security_manager.override import generate_password_hash
import json
import os
password = os.environ.get('AIRFLOW_ADMIN_PASSWORD', 'admin123')
hashed = generate_password_hash(password)
with open('/opt/airflow/simple_auth_manager_passwords.json.generated', 'w') as f:
    json.dump({'admin': 'admin123'}, f)
print('✅ Auth file created')

docker-compose.yaml

x-airflow-common: &airflow-common
  build: .
  image: dand:latest
  entrypoint: ["/entrypoint.sh"]
  environment:
    &airflow-common-env
    AIRFLOW__API__SECRET_KEY: '0aecec318c2a65b3196ae67ae01991d5d2a9e5135c23c4ba6a6819bae8e55ed0'
    AIRFLOW__API__WORKERS: 2
    AIRFLOW__API__AUTH_BACKENDS: "airflow.api.auth.backend.basic_auth"
    AIRFLOW__API__ACCESS_CONTROL_ALLOW_ORIGIN: "*"
    AIRFLOW__WEBSERVER__COOKIE_SAMESITE: 'Lax'
    AIRFLOW__WEBSERVER__ENABLE_PROXY_FIX: 'True'
    AIRFLOW__CORE__EXECUTOR: LocalExecutor
    AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@localhost:5432/airflow
    AIRFLOW_CONN_POSTGRESQL: postgresql://airflow:airflow@localhost:5432/free_track
    AIRFLOW__CORE__FERNET_KEY: 'hcjoZxmIjvhOM2cvB6B_9YpL-WThgsX-J_3jagP4LUg='
    AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'true'
    AIRFLOW__CORE__LOAD_EXAMPLES: 'false'
    AIRFLOW__SCHEDULER__MIN_FILE_PROCESS_INTERVAL: 10
    AIRFLOW__CORE__DAGBAG_IMPORT_TIMEOUT: 600
    AIRFLOW__WEBSERVER__WORKERS: 2
    AIRFLOW__WEBSERVER__WORKER_REFRESH_INTERVAL: 1800
    AIRFLOW__WEBSERVER__DAGBAG_IMPORT_ERROR_TRACEBACKS: "True"
    AIRFLOW__WEBSERVER__EXPOSE_CONFIG: "True"
    # Создаем администратора для API
    _AIRFLOW_WWW_USER_USERNAME: 'admin'
    _AIRFLOW_WWW_USER_PASSWORD: 'airflow'
    _AIRFLOW_WWW_USER_FIRSTNAME: 'Admin'
    _AIRFLOW_WWW_USER_LASTNAME: 'User'
    _AIRFLOW_WWW_USER_EMAIL: '[email protected]'
    _AIRFLOW_WWW_USER_ROLE: 'Admin'
    #_AIRFLOW_DB_MIGRATE: 'true'
    _AIRFLOW_WWW_USER_CREATE: 'true'
    #AIRFLOW__CORE__DAGS_FOLDER: /opt/airflow/dags/repo/dags  # Изменяем путь

    AIRFLOW__CORE__GIT_SYNC__ENABLED: "true"
    JUPYTER_ENABLE_LAB: "yes"

    AIRFLOW__DAG_PROCESSOR__GIT_SYNC_ENABLED: "true"

    AIRFLOW__CORE__DAGS_FOLDER: "/opt/airflow/dags/"


  volumes:
    - ./dags:/opt/airflow/dags
    - ./logs:/opt/airflow/logs
    - ./jupyter:/opt/airflow/jupyter
    - ./plugins:/opt/airflow/plugins
    - ./data:/opt/airflow/data
    - ./config:/opt/airflow/config
    - ./scripts:/opt/airflow/scripts
    - ./dbt:/opt/airflow/dbt
    - ./create_auth_file.py:/create_auth_file.py

  user: "50000:0"

services:
  airflow-webserver:
    <<: *airflow-common
    user: "50000:0"
    ports:
      - "9080:8080"
      - "9088:8888"
      - "9432:5432"
    environment:
      <<: *airflow-common-env
      PG_PASSWORD: postgres
      AIRFLOW_ADMIN_PASSWORD: admin123  # ← просто значение
      UPDATE_PASSWORD: false
    healthcheck:
      test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 5

Tag summary

Content type

Image

Digest

sha256:a52842b4d…

Size

1 GB

Last updated

8 months ago

docker pull sql4mpp/dand