commit 4e6ff486bd04e6ae1e3ec5ad7b9f759c1084a8a5 Author: Harmacistant Date: Fri Mar 12 15:32:44 2021 -0600 Initial Commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..62c8935 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b4f80d2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,61 @@ +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 \ No newline at end of file