[ 
https://issues.apache.org/jira/browse/AIRFLOW-5389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jarek Potiuk resolved AIRFLOW-5389.
-----------------------------------
    Fix Version/s: 1.10.5
       Resolution: Fixed

> Better organised/faster build for external dependencies in ci build
> -------------------------------------------------------------------
>
>                 Key: AIRFLOW-5389
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-5389
>             Project: Apache Airflow
>          Issue Type: Improvement
>          Components: ci
>    Affects Versions: 2.0.0, 1.10.5
>            Reporter: Jarek Potiuk
>            Priority: Major
>             Fix For: 1.10.5
>
>
> There are several entries with if's for CI image in the Dockerfile. They have 
> weird syntax and they are slow (each if line is separately evaluated while 
> Docker build).
> They can be moved to bash scripts and replaced with single RUN command (one 
> per CI deps and one for main file). Then we will also use the power of 
> shellcheck to verify those scripts.
> In the future, we also think about unifying the dockerfiles later one 
> (production/CI/SLIM without multi-staging) and removing installation of 
> hive/hadoop/minicluster to separate images. This might be first step to do so.
> Examples of the current code:
> CI deps:
> {code:java}
> RUN \
> if [[ "${APT_DEPS_IMAGE}" == "airflow-apt-deps-ci" ]]; then \
>  mkdir -pv ${HADOOP_HOME} \
>  && mkdir -pv ${HIVE_HOME} \
>  && mkdir /tmp/minicluster \
>  && mkdir -pv /user/hive/warehouse \
>  && chmod -R 777 ${HIVE_HOME} \
>  && chmod -R 777 /user/ \
>  ;\
> fi
> # Install Hadoop
> # --absolute-names is a work around to avoid this issue 
> https://github.com/docker/hub-feedback/issues/727
> RUN \
> if [[ "${APT_DEPS_IMAGE}" == "airflow-apt-deps-ci" ]]; then \
>     
> HADOOP_URL=${HADOOP_URL}hadoop-${HADOOP_VERSION}-${HADOOP_DISTRO}${HADOOP_DISTRO_VERSION}.tar.gz
>  \
>     && HADOOP_TMP_FILE=/tmp/hadoop.tar.gz \
>     && curl -sL ${HADOOP_URL} > ${HADOOP_TMP_FILE} \
>     && tar xzf ${HADOOP_TMP_FILE} --absolute-names --strip-components 1 -C 
> ${HADOOP_HOME} \
>     && rm ${HADOOP_TMP_FILE} \
>     ;\
> fi{code}
>  
> main:
> {code:java}
> if [[ "${APT_DEPS_IMAGE}" == "airflow-apt-deps-ci" ]]; then \
> chmod +x "${HOME}/run-tests-complete" "${HOME}/run-tests" && \
> chown "${AIRFLOW_USER}.${AIRFLOW_USER}" "${HOME}/.bashrc" \
>  "${HOME}/run-tests-complete" "${HOME}/run-tests"; \
> fi
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to