fix: add-host for stand e2e under Docker host network (IFT DNS)
This commit is contained in:
@@ -44,6 +44,31 @@ echo " ADMIN_API_HOST=${ADMIN_API_HOST}"
|
||||
echo " WS_HOST=${WS_HOST}"
|
||||
echo " ADMIN_WS_HOST=${ADMIN_WS_HOST}"
|
||||
|
||||
# Docker Desktop/WSL: --network=host часто НЕ наследует /etc/hosts стенда,
|
||||
# из‑за чего CT remote не резолвит *.ift.eventhub.local (health timeout 30s).
|
||||
docker_add_hosts=()
|
||||
for url in "${API_HOST}" "${ADMIN_API_HOST}" "${WS_HOST}" "${ADMIN_WS_HOST}"; do
|
||||
host="$(python3 -c 'from urllib.parse import urlparse; import sys; print(urlparse(sys.argv[1]).hostname or "")' "${url}")"
|
||||
[[ -n "${host}" ]] || continue
|
||||
# уже добавили этот host
|
||||
skip=0
|
||||
for existing in "${docker_add_hosts[@]:-}"; do
|
||||
case "${existing}" in
|
||||
--add-host="${host}:"*) skip=1; break ;;
|
||||
esac
|
||||
done
|
||||
[[ "${skip}" -eq 1 ]] && continue
|
||||
ip="$(getent ahostsv4 "${host}" 2>/dev/null | awk '{print $1; exit}' || true)"
|
||||
if [[ -z "${ip}" ]]; then
|
||||
ip="$(getent hosts "${host}" 2>/dev/null | awk '{print $1; exit}' || true)"
|
||||
fi
|
||||
if [[ -z "${ip}" ]]; then
|
||||
ip=host-gateway
|
||||
fi
|
||||
echo " docker --add-host ${host}:${ip}"
|
||||
docker_add_hosts+=(--add-host="${host}:${ip}")
|
||||
done
|
||||
|
||||
IMAGE="eventhub-api-tests:local"
|
||||
REG_IMAGE=""
|
||||
if [[ -n "${GITHUB_SHA:-}" ]]; then
|
||||
@@ -90,6 +115,7 @@ if [[ "${have_image}" -ne 1 ]]; then
|
||||
fi
|
||||
|
||||
docker run --rm --network=host \
|
||||
${docker_add_hosts[@]+"${docker_add_hosts[@]}"} \
|
||||
-e CT_MODE=remote \
|
||||
-e "API_HOST=${API_HOST}" \
|
||||
-e "ADMIN_API_HOST=${ADMIN_API_HOST}" \
|
||||
|
||||
Reference in New Issue
Block a user