From 8aeb38e4a718925a78606b8aa014bce6b4a4054c Mon Sep 17 00:00:00 2001 From: baude Date: Tue, 2 Jan 2018 13:53:08 -0600 Subject: libpod/container.go Handle systemd resolve In cases, like Ubuntu, where it uses systemd resolve for DNS then do not copy /etc/resolv.conf but instead the resolv.conf in the systemd resolve /run dir. Signed-off-by: baude Closes: #177 Approved by: rhatdan --- libpod/container.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'libpod/container.go') diff --git a/libpod/container.go b/libpod/container.go index 158bf7529..454fe43ac 100644 --- a/libpod/container.go +++ b/libpod/container.go @@ -584,9 +584,17 @@ func (c *Container) Init() (err error) { } // Copy /etc/resolv.conf to the container's rundir - runDirResolv, err := c.copyHostFileToRundir("/etc/resolv.conf") + resolvPath := "/etc/resolv.conf" + + // Check if the host system is using system resolve and if so + // copy its resolv.conf + _, err = os.Stat("/run/systemd/resolve/resolv.conf") + if err == nil { + resolvPath = "/run/systemd/resolve/resolv.conf" + } + runDirResolv, err := c.copyHostFileToRundir(resolvPath) if err != nil { - return errors.Wrapf(err, "unable to copy /etc/resolv.conf to ", runDirResolv) + return errors.Wrapf(err, "unable to copy resolv.conf to ", runDirResolv) } // Copy /etc/hosts to the container's rundir runDirHosts, err := c.copyHostFileToRundir("/etc/hosts") -- cgit v1.2.3-54-g00ecf