[ https://issues.apache.org/jira/browse/YETUS-913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16930480#comment-16930480 ]
Allen Wittenauer commented on YETUS-913: ---------------------------------------- Looking at the code, I think there are a few things that need to happen: 1) Get rid of the raw DOCKER_EXTRAENVS+=("JAVA_HOME") and make it part of java.sh 2) Add empty checks in a handful of cases prior to calling add_docker_env. [It isn't safe to make a blanket empty check in add_docker_env. :( ] > Docker mode pre-commit can't use JAVA_HOME defined in dockerfile > ---------------------------------------------------------------- > > Key: YETUS-913 > URL: https://issues.apache.org/jira/browse/YETUS-913 > Project: Yetus > Issue Type: Bug > Components: Precommit > Affects Versions: 0.9.0, 0.10.0, 0.11.0 > Reporter: Sean Busbey > Priority: Major > > Over in HBase we use different JDKs depending on the branch, due to our > compatibility promises in major release lines. For test-patch runs, this > changes the set of JDKs we install in each branch's Dockerfile. > While recently trying to chase down why we were getting JDK8 used to test a > branch that's JDK7+, I realized that the docker bootstrapping _always_ > overwrites the JAVA_HOME in the image with JAVA_HOME on the host. This > includes when the host doesn't define a JAVA_HOME, effectively preventing a > JAVA_HOME set by the image (either via ENV or by installing some package that > sets it). > Workaround: > You can prevent this by replacing the {{docker_do_env_adds}} function in your > personality. e.g. this version will only set JAVA_HOME in the docker instance > if the host defines it. We then make sure all of our uses of test-patch unset > JAVA_HOME before invocation. > {code} > # work around yetus overwriting JAVA_HOME from our docker image > function docker_do_env_adds > { > declare k > for k in "${DOCKER_EXTRAENVS[@]}"; do > if [[ "JAVA_HOME" == "${k}" ]]; then > if [ -n "${JAVA_HOME}" ]; then > DOCKER_EXTRAARGS+=("--env=JAVA_HOME=${JAVA_HOME}") > fi > else > DOCKER_EXTRAARGS+=("--env=${k}=${!k}") > fi > done > } > {code} -- This message was sent by Atlassian Jira (v8.3.2#803003)