This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch v2-1-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 08c8473d589203aa9a895985b274ad686cce7f06 Author: Jarek Potiuk <[email protected]> AuthorDate: Mon Jul 19 19:52:15 2021 +0200 Fixes UI assets compilation from PROD image built from sources (#17086) The #16577 change removed yarn.lock from installed packages and it removed the possibility of preparing assets after the package is installed - so far that was the way it was done in the PROD image built from sources. The asset compilation was supposed to work after the change but it was not performed in this case. The change fixes it by: * detecting properly if the PROD image is built from sources (INSTALLATION_METHOD) * compiling the assets from sources, not from package * installing airflow from sources AFTER assets were compiled Fixes #16939 (cherry picked from commit 660027f65d5333368aad7f16d3c927b9615e60ac) --- Dockerfile | 11 ++++++----- scripts/docker/compile_www_assets.sh | 7 ++++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8c32913..66c9649 100644 --- a/Dockerfile +++ b/Dockerfile @@ -248,15 +248,16 @@ ENV ADDITIONAL_PYTHON_DEPS=${ADDITIONAL_PYTHON_DEPS} \ WORKDIR /opt/airflow # hadolint ignore=SC2086, SC2010 -RUN if [[ ${INSTALL_FROM_DOCKER_CONTEXT_FILES} == "true" ]]; then \ - bash /scripts/docker/install_from_docker_context_files.sh; \ - elif [[ ${INSTALL_FROM_PYPI} == "true" ]]; then \ - bash /scripts/docker/install_airflow.sh; \ - else \ +RUN if [[ ${AIRFLOW_INSTALLATION_METHOD} == "." ]]; then \ # only compile assets if the prod image is build from sources # otherwise they are already compiled-in bash /scripts/docker/compile_www_assets.sh; \ fi; \ + if [[ ${INSTALL_FROM_DOCKER_CONTEXT_FILES} == "true" ]]; then \ + bash /scripts/docker/install_from_docker_context_files.sh; \ + elif [[ ${INSTALL_FROM_PYPI} == "true" ]]; then \ + bash /scripts/docker/install_airflow.sh; \ + fi; \ if [[ -n "${ADDITIONAL_PYTHON_DEPS}" ]]; then \ bash /scripts/docker/install_additional_dependencies.sh; \ fi; \ diff --git a/scripts/docker/compile_www_assets.sh b/scripts/docker/compile_www_assets.sh index 01c5470..59a7017 100755 --- a/scripts/docker/compile_www_assets.sh +++ b/scripts/docker/compile_www_assets.sh @@ -28,7 +28,12 @@ function compile_www_assets() { md5sum_file="static/dist/sum.md5" readonly md5sum_file local www_dir - www_dir="$(python -m site --user-site)/airflow/www" + if [[ ${AIRFLOW_INSTALLATION_METHOD=} == "." ]]; then + # In case we are building from sources in production image, we should build the assets + www_dir="${AIRFLOW_SOURCES_TO}/airflow/www" + else + www_dir="$(python -m site --user-site)/airflow/www" + fi pushd ${www_dir} || exit 1 yarn install --frozen-lockfile --no-cache yarn run prod
