#!/bin/sh # Point nginx's reverse-proxy `resolver` at THIS container's real DNS server. # # The portal nginx configs use a variable proxy_pass, which needs a `resolver` so the BFF hostname is # resolved at request time (nginx can start before the BFF is up). The config hardcodes Docker's # embedded DNS (127.0.0.11) — correct on Docker/Docker Desktop, but rootless podman uses a # network-specific address (aardvark, e.g. 10.89.0.1), so proxied calls 502 there. Read the actual # nameserver from /etc/resolv.conf and substitute it, so the reverse proxy works on any engine. # # Runs from the nginx image's /docker-entrypoint.d/ before nginx starts. On Docker the nameserver IS # 127.0.0.11, so the substitution is a no-op. Guarded (no `set -e`) so it's safe whether the nginx # entrypoint executes or sources it. ns="$(awk '/^nameserver/{print $2; exit}' /etc/resolv.conf 2>/dev/null)" if [ -n "$ns" ] && [ "$ns" != "127.0.0.11" ]; then sed -i "s/resolver 127\.0\.0\.11/resolver $ns/" /etc/nginx/conf.d/default.conf 2>/dev/null || true echo "portal-nginx-resolver: set resolver to $ns" fi