airflow & jupyter debug & run
1.8K
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
Content type
Image
Digest
sha256:a52842b4d…
Size
1 GB
Last updated
8 months ago
docker pull sql4mpp/dand