mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Provide full hostname with domainname to underlying container layer
Addresses #7851 Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
This commit is contained in:
parent
42ec80bec0
commit
5239ba3d06
2 changed files with 26 additions and 1 deletions
|
@ -1043,10 +1043,15 @@ func (container *Container) setupLinkedContainers() ([]string, error) {
|
|||
}
|
||||
|
||||
func (container *Container) createDaemonEnvironment(linkedEnv []string) []string {
|
||||
// if a domain name was specified, append it to the hostname (see #7851)
|
||||
fullHostname := container.Config.Hostname
|
||||
if container.Config.Domainname != "" {
|
||||
fullHostname = fmt.Sprintf("%s.%s", fullHostname, container.Config.Domainname)
|
||||
}
|
||||
// Setup environment
|
||||
env := []string{
|
||||
"PATH=" + DefaultPathEnv,
|
||||
"HOSTNAME=" + container.Config.Hostname,
|
||||
"HOSTNAME=" + fullHostname,
|
||||
// Note: we don't set HOME here because it'll get autoset intelligently
|
||||
// based on the value of USER inside dockerinit, but only if it isn't
|
||||
// set already (ie, that can be overridden by setting HOME via -e or ENV
|
||||
|
|
|
@ -821,6 +821,26 @@ func TestRunLoopbackOnlyExistsWhenNetworkingDisabled(t *testing.T) {
|
|||
logDone("run - test loopback only exists when networking disabled")
|
||||
}
|
||||
|
||||
// #7851 hostname outside container shows FQDN, inside only shortname
|
||||
// For testing purposes it is not required to set host's hostname directly
|
||||
// and use "--net=host" (as the original issue submitter did), as the same
|
||||
// codepath is executed with "docker run -h <hostname>". Both were manually
|
||||
// tested, but this testcase takes the simpler path of using "run -h .."
|
||||
func TestRunFullHostnameSet(t *testing.T) {
|
||||
cmd := exec.Command(dockerBinary, "run", "-h", "foo.bar.baz", "busybox", "hostname")
|
||||
out, _, err := runCommandWithOutput(cmd)
|
||||
if err != nil {
|
||||
t.Fatal(err, out)
|
||||
}
|
||||
|
||||
if actual := strings.Trim(out, "\r\n"); actual != "foo.bar.baz" {
|
||||
t.Fatalf("expected hostname 'foo.bar.baz', received %s", actual)
|
||||
}
|
||||
deleteAllContainers()
|
||||
|
||||
logDone("run - test fully qualified hostname set with -h")
|
||||
}
|
||||
|
||||
func TestRunPrivilegedCanMknod(t *testing.T) {
|
||||
cmd := exec.Command(dockerBinary, "run", "--privileged", "busybox", "sh", "-c", "mknod /tmp/sda b 8 0 && echo ok")
|
||||
out, _, err := runCommandWithOutput(cmd)
|
||||
|
|
Loading…
Add table
Reference in a new issue