ARG         AWS_ACCOUNT=086679231553
FROM        ${AWS_ACCOUNT}.dkr.ecr.us-east-1.amazonaws.com/docker-parent-images:python311 AS base
LABEL maintainer="theorchard.io"
USER root
WORKDIR /var/airflow

# Copy files
COPY requirements.txt requirements-dev.txt ./
COPY dags ./dags
COPY tests ./tests
COPY .flake8 ./

# Update and install requirements
RUN apt-get -q -y update && \
    apt-get -q -y install \
        git \
        zip \
        netcat-traditional \
        gcc \
        g++ \
        wget \
        make \
        tcl \
        libsasl2-dev \
        build-essential \
        libssl-dev \
        libffi-dev \
        python3.11-dev \
        sqlite3 \
        postgresql \
        libmariadb-dev \
        pkg-config && \
    apt-get -y autoremove && \
    apt-get -y clean all && \
    rm -rf /var/cache/yum

# Configure airflow home
ENV LD_LIBRARY_PATH=/usr/local/lib
RUN python3.11 -m venv env
ENV PATH="/var/airflow/env/bin:$PATH"
RUN env/bin/python -m pip install -q -U pip "setuptools<81.0.0" wheel supervisor && \
    env/bin/python -m pip install -q -I -r requirements.txt -vvv -q -I -r requirements-dev.txt
RUN env/bin/airflow db init
CMD env/bin/python -m flake8 dags/ tests/ && \
    PYTHONDONTWRITEBYTECODE=1 COVERAGE_FILE=build/.coverage env/bin/python -m pytest tests --cov=dags --cov-report xml:build/coverage.xml --junitxml=build/pyunit.xml
