airflow-pipeline / entrypoint.sh
Eurosmart's picture
.
2700879
raw
history blame contribute delete
928 Bytes
#!/bin/bash
set -e
# Initialize Airflow database migrations
echo "Running database migrations..."
airflow db migrate
# Check if the Airflow user already exists before creating it
echo "Checking if the admin user exists..."
USER_EXISTS=$(airflow users list | grep -w "${AIRFLOW_USERNAME}" || true)
if [ -z "$USER_EXISTS" ]; then
echo "Creating Airflow admin user..."
airflow users create --username "${AIRFLOW_USERNAME}" --password "${AIRFLOW_PASSWORD}" --firstname Admin --lastname Admin --role Admin --email "${AIRFLOW_EMAIL}"
else
echo "Admin user already exists, skipping user creation."
fi
# Start Airflow services
echo "Starting Airflow webserver, scheduler, and workers..."
exec airflow webserver --port 8080 & # Start webserver in the background
exec airflow scheduler & # Start scheduler in the background
exec airflow celery worker # Start Celery worker as the main process