Fix systemd-resolved detection.
Previously podman failed when run in an environment where 127.0.0.53 is the only nameserver but systemd-resolved is not used directly. In practice this happened when podman was run within an alpine container that used the host's network and the host was running systemd-resolved. This fix makes podman ignore a file not found error when reading /run/systemd/resolve/resolv.conf. Closes #10733 [NO TESTS NEEDED] Signed-off-by: Max Goltzsche <max.goltzsche@gmail.com>
This commit is contained in:
parent
d8cd205478
commit
0fb165ed08
|
@ -1661,10 +1661,14 @@ func (c *Container) generateResolvConf() (string, error) {
|
||||||
// check if systemd-resolved is used, assume it is used when 127.0.0.53 is the only nameserver
|
// check if systemd-resolved is used, assume it is used when 127.0.0.53 is the only nameserver
|
||||||
if len(ns) == 1 && ns[0] == "127.0.0.53" {
|
if len(ns) == 1 && ns[0] == "127.0.0.53" {
|
||||||
// read the actual resolv.conf file for systemd-resolved
|
// read the actual resolv.conf file for systemd-resolved
|
||||||
contents, err = ioutil.ReadFile("/run/systemd/resolve/resolv.conf")
|
resolvedContents, err := ioutil.ReadFile("/run/systemd/resolve/resolv.conf")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
return "", errors.Wrapf(err, "detected that systemd-resolved is in use, but could not locate real resolv.conf")
|
return "", errors.Wrapf(err, "detected that systemd-resolved is in use, but could not locate real resolv.conf")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
contents = resolvedContents
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ipv6 := false
|
ipv6 := false
|
||||||
|
|
Loading…
Reference in New Issue