Spaces:
Runtime error
Runtime error
| FROM python:3.9-slim | |
| # Airflow environment variables | |
| ENV AIRFLOW_VERSION=2.10.5 | |
| ENV AIRFLOW_HOME=/opt/airflow | |
| ENV AIRFLOW__CORE__LOAD_EXAMPLES=False | |
| ENV PATH="/home/airflow/.local/bin:$PATH" | |
| ENV HOME="/home/airflow" | |
| # System deps | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| default-libmysqlclient-dev \ | |
| libpq-dev \ | |
| pgbouncer \ | |
| git \ | |
| curl \ | |
| && apt-get clean && rm -rf /var/lib/apt/lists/* | |
| # Create Airflow user | |
| RUN useradd -ms /bin/bash airflow | |
| # Create folders & give ownership | |
| RUN mkdir -p $AIRFLOW_HOME \ | |
| && chown -R airflow:airflow $AIRFLOW_HOME | |
| # Copy project files | |
| COPY --chown=airflow:airflow requirements.txt /requirements.txt | |
| COPY --chown=airflow:airflow dags $AIRFLOW_HOME/dags | |
| COPY --chown=airflow:airflow entrypoint.sh /entrypoint.sh | |
| # Create the pgbouncer configuration directory | |
| # and give ownership to airflow user | |
| RUN mkdir -p /etc/pgbouncer \ | |
| && chown -R airflow:airflow /etc/pgbouncer | |
| # Make entrypoint executable | |
| RUN chmod +x /entrypoint.sh | |
| # Switch to airflow user | |
| USER airflow | |
| # Set working directory | |
| WORKDIR $AIRFLOW_HOME | |
| # Install Airflow and Python dependencies | |
| RUN pip install --no-cache-dir apache-airflow==${AIRFLOW_VERSION} \ | |
| && pip install --no-cache-dir -r /requirements.txt | |
| # Expose Airflow ports | |
| EXPOSE 8088 | |
| EXPOSE 8793 | |
| # Healthcheck (webserver) | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=20s --retries=10 \ | |
| CMD curl --fail http://localhost:8088/health || exit 1 | |
| # Entrypoint | |
| ENTRYPOINT ["/entrypoint.sh"] | |