summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2018-11-07 08:58:19 -0800
committerGitHub <noreply@github.com>2018-11-07 08:58:19 -0800
commit90662c2fa3c4069dcf34c01dd3011a20cecde6ee (patch)
tree10a0ff437ed2eb676eefefe5cde7a62aae0d2bce
parent48914d67aed53ad793d86c98a6a4e96cfefe7333 (diff)
parent879f9116de8a186558fb4e7b6a259b1b8ad1aaca (diff)
downloadpodman-90662c2fa3c4069dcf34c01dd3011a20cecde6ee.tar.gz
podman-90662c2fa3c4069dcf34c01dd3011a20cecde6ee.tar.bz2
podman-90662c2fa3c4069dcf34c01dd3011a20cecde6ee.zip
Merge pull request #1751 from QiWang19/issue1745
Add hostname to /etc/hosts
-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)))
})
})