diff --git a/resources/docker-images/build.sh b/resources/docker-images/build.sh index af750137f4..46cf7d7618 100755 --- a/resources/docker-images/build.sh +++ b/resources/docker-images/build.sh @@ -35,7 +35,7 @@ build_action() { if [[ "${platform}" == "base" ]]; then # shellcheck disable=SC2154 # set by convert_parameters_to_args - docker pull "${DISTRO}:${DISTRO_VERSION}" + docker_wrapper pull "${DISTRO}:${DISTRO_VERSION}" elif [[ "${platform}" == "linux" ]]; then cp "${KEYMAN_ROOT}/linux/debian/control" "${platform}" fi @@ -48,12 +48,12 @@ build_action() { cd "${platform}" export DOCKER_BUILDKIT=1 # shellcheck disable=SC2248,SC2086 - docker build ${OPTION_NO_CACHE:-} -t "keymanapp/keyman-${platform}-ci:${build_version}" "${build_args[@]}" . + docker_wrapper build ${OPTION_NO_CACHE:-} -t "keymanapp/keyman-${platform}-ci:${build_version}" "${build_args[@]}" . # If the user didn't specify particular versions we will additionaly create an image # with the tag 'default'. if is_default_values; then builder_echo debug "Setting default tag for ${platform}" - docker build -t "keymanapp/keyman-${platform}-ci:default" "${build_args[@]}" . + docker_wrapper build -t "keymanapp/keyman-${platform}-ci:default" "${build_args[@]}" . fi # shellcheck disable=SC2164,SC2103 cd - diff --git a/resources/docker-images/docker-build.inc.sh b/resources/docker-images/docker-build.inc.sh index b10701b73c..13164196e3 100644 --- a/resources/docker-images/docker-build.inc.sh +++ b/resources/docker-images/docker-build.inc.sh @@ -71,3 +71,13 @@ check_buildx_available() { exit 1 fi } + +docker_wrapper() { + if [[ "${MSYSTEM:-}" == "MINGW64" ]]; then + # Prevent POSIX-to-Windows path conversion if running in Git Bash on Windows + # (https://github.com/git-for-windows/git/issues/577#issuecomment-166118846) + MSYS_NO_PATHCONV=1 docker "$@" + else + docker "$@" + fi +} diff --git a/resources/docker-images/run.sh b/resources/docker-images/run.sh index 6603745c83..857bb90dcf 100755 --- a/resources/docker-images/run.sh +++ b/resources/docker-images/run.sh @@ -37,21 +37,21 @@ else fi run_android() { - docker run -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "keymanapp/keyman-android-ci:${image_version}" \ "${builder_extra_params[@]}" } run_core() { - docker run -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "keymanapp/keyman-core-ci:${image_version}" \ "${builder_extra_params[@]}" } run_developer() { - docker run -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run -it --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "keymanapp/keyman-developer-ci:${image_version}" \ "${builder_extra_params[@]}" @@ -60,7 +60,7 @@ run_developer() { run_linux() { mkdir -p "${KEYMAN_ROOT}/linux/build/docker-linux/${build_dir}" mkdir -p "${KEYMAN_ROOT}/linux/keyman-system-service/build/docker-linux/${build_dir}" - docker run -it --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run -it --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ -v "${KEYMAN_ROOT}/linux/build/docker-linux/${build_dir}":/home/build/build/linux/build \ -v "${KEYMAN_ROOT}/linux/keyman-system-service/build/docker-linux/${build_dir}":/home/build/build/linux/keyman-system-service/build \ @@ -70,7 +70,7 @@ run_linux() { } run_web() { - docker run -it --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ + docker_wrapper run -it --privileged --rm -v "${KEYMAN_ROOT}":/home/build/build \ -v "${KEYMAN_ROOT}/core/build/docker-core/${build_dir}":/home/build/build/core/build \ "keymanapp/keyman-web-ci:${image_version}" \ "${builder_extra_params[@]}"