FROM library/python:3.7-slim-buster ARG AIRFLOW_VERSION="2.0.0" ARG AIRFLOW_EXTRAS="celery,microsoft.mssql,jdbc,ssh,async,docker,oracle,ldap,sftp,postgres,redis" ARG AIRFLOW_HOME_DIR=/opt/airflow ARG AIRFLOW_USER_HOME_DIR=/home/airflow ENV AIRFLOW_VERSION=${AIRFLOW_VERSION} ENV AIRFLOW_EXTRAS=${AIRFLOW_EXTRAS} ENV AIRFLOW_HOME_DIR=${AIRFLOW_HOME_DIR} ENV AIRFLOW_USER_HOME_DIR=${AIRFLOW_USER_HOME_DIR} ENV AIRFLOW_HOME=${AIRFLOW_HOME_DIR} ENV AIRFLOW__CORE__LOAD_EXAMPLES="false" # COPY custom_sources.list /etc/apt/sources.list # COPY custom_pip_conf.conf /etc/pip.conf RUN apt-get update \ && mkdir -pv /usr/share/man/man1 \ && mkdir -pv /usr/share/man/man7 \ && apt-get install -yqq \ python3-pip \ default-jre-headless \ gcc \ ca-certificates \ build-essential \ ldap-utils \ libsasl2-dev \ python-dev \ libldap2-dev \ libssl-dev \ openssh-server \ && apt-get autoremove -yqq --purge \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN pip install apache-airflow[${AIRFLOW_EXTRAS}]==${AIRFLOW_VERSION} RUN pip install pyldap bs4 exchangelib XlsxWriter openpyxl wmi smbprotocol # User Setup RUN addgrouop --gid "50000" "airflow" && \ adduser --quiet "airflow" --uid "50000" \ --gid "50000" \ --home "${AIRFLOW_USER_HOME_DIR}" RUN mkdir -pv "${AIRFLOW_HOME_DIR}"; \ mkdir -pv "${AIRFLOW_HOME_DIR}/dags"; \ mkdir -pv "${AIRFLOW_HOME_DIR}/logs"; \ chown -R "airflow:root" "${AIRFLOW_USER_HOME_DIR}" "${AIRFLOW_HOME}"; RUN chmod g=u /etc/passwd ENV PATH="${AIRFLOW_USER_HOME_DIR}/.local/bin:${PATH}:/root/.local/bin" RUN mkdir -p /root/.local/bin WORKDIR ${AIRFLOW_HOME} USER airflow CMD airflow db init && airflow webserver