aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQi Wang <qiwan@redhat.com>2018-11-02 13:19:15 -0400
committerQi Wang <qiwan@redhat.com>2018-11-07 09:55:59 -0500
commit879f9116de8a186558fb4e7b6a259b1b8ad1aaca (patch)
tree5b87ba4a5b0aeb7c592541cb4de4c84aa7c3f347
parent76360d9a6ef73f694138766b81f380e45a860556 (diff)
downloadpodman-879f9116de8a186558fb4e7b6a259b1b8ad1aaca.tar.gz
podman-879f9116de8a186558fb4e7b6a259b1b8ad1aaca.tar.bz2
podman-879f9116de8a186558fb4e7b6a259b1b8ad1aaca.zip
Add hostname to /etc/hosts
Signed-off-by: Qi Wang <qiwan@redhat.com>
-rw-r--r--libpod/container_internal.go4
-rw-r--r--test/e2e/run_dns_test.go21
2 files changed, 24 insertions, 1 deletions
diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index d928c4aed..9bdf4b8fc 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -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)
}
diff --git a/test/e2e/run_dns_test.go b/test/e2e/run_dns_test.go
index c5a02c776..674a57aeb 100644
--- a/test/e2e/run_dns_test.go
+++ b/test/e2e/run_dns_test.go
@@ -1,9 +1,10 @@
package integration
import (
+ "fmt"
"os"
+ "strings"
- "fmt"
. "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)))
})
})