Add hostname to /etc/hosts

Signed-off-by: Qi Wang <qiwan@redhat.com>
This commit is contained in:
Qi Wang
2018-11-02 13:19:15 -04:00
parent 76360d9a6e
commit 879f9116de
2 changed files with 25 additions and 2 deletions

View File

@ -1157,6 +1157,10 @@ func (c *Container) generateHosts() (string, error) {
hosts += fmt.Sprintf("%s %s\n", fields[1], fields[0])
}
}
if len(c.state.NetworkStatus) > 0 && len(c.state.NetworkStatus[0].IPs) > 0 {
ipAddress := strings.Split(c.state.NetworkStatus[0].IPs[0].Address.String(), "/")[0]
hosts += fmt.Sprintf("%s\t%s\n", ipAddress, c.Hostname())
}
return c.writeStringToRundir("hosts", hosts)
}

View File

@ -1,9 +1,10 @@
package integration
import (
"os"
"fmt"
"os"
"strings"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
@ -82,5 +83,23 @@ var _ = Describe("Podman run dns", func() {
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
Expect(session.OutputToString()).To(Equal("foobar"))
session = podmanTest.Podman([]string{"run", "-d", "--hostname=foobar", ALPINE, "cat", "/etc/hosts"})
session.WaitWithDefaultTimeout()
cid := session.OutputToString()
session = podmanTest.Podman([]string{"start", "-ia", cid})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
session.LineInOutputContains("foobar")
line := strings.Split(session.OutputToStringArray()[len(session.OutputToStringArray())-1], "\t")
ip1 := line[0]
session = podmanTest.Podman([]string{"start", "-ia", cid})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
session.LineInOutputContains("foobar")
line = strings.Split(session.OutputToStringArray()[len(session.OutputToStringArray())-1], "\t")
ip2 := line[0]
Expect(ip2).To(Not(Equal(ip1)))
})
})