aboutsummaryrefslogtreecommitdiff
path: root/libpod/container_api.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-01-20 11:07:35 -0600
committerAtomic Bot <atomic-devel@projectatomic.io>2018-01-21 17:24:49 +0000
commit5c3e4cfa62452b9cd5c2c08bf081ab524ded1cb4 (patch)
treed259c5a6c689141a43fd4f9249b4aa7697d4e320 /libpod/container_api.go
parent946b4ced544e5988a971da12c7e34a684ab0e39d (diff)
downloadpodman-5c3e4cfa62452b9cd5c2c08bf081ab524ded1cb4.tar.gz
podman-5c3e4cfa62452b9cd5c2c08bf081ab524ded1cb4.tar.bz2
podman-5c3e4cfa62452b9cd5c2c08bf081ab524ded1cb4.zip
Override hostname for container
Adds the ability to override the container's hostname. Also, uses the first twelve characters of the container ID as the default hostname if none is provided. Signed-off-by: baude <bbaude@redhat.com> Closes: #248 Approved by: baude
Diffstat (limited to 'libpod/container_api.go')
-rw-r--r--libpod/container_api.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/libpod/container_api.go b/libpod/container_api.go
index be7fd76bc..2b3c83eb2 100644
--- a/libpod/container_api.go
+++ b/libpod/container_api.go
@@ -90,6 +90,18 @@ func (c *Container) Init() (err error) {
return errors.Wrapf(err, "unable to copy /etc/hosts to container space")
}
+ if c.Spec().Hostname == "" {
+ id := c.ID()
+ if len(c.ID()) > 11 {
+ id = c.ID()[:12]
+ }
+ c.config.Spec.Hostname = id
+ }
+ runDirHostname, err := c.generateEtcHostname(c.config.Spec.Hostname)
+ if err != nil {
+ return errors.Wrapf(err, "unable to generate hostname file for container")
+ }
+
// Save OCI spec to disk
g := generate.NewFromSpec(c.config.Spec)
// If network namespace was requested, add it now
@@ -122,6 +134,14 @@ func (c *Container) Init() (err error) {
Options: []string{"rw", "bind"},
}
g.AddMount(hostsMnt)
+ // Bind hostname
+ hostnameMnt := spec.Mount{
+ Type: "bind",
+ Source: runDirHostname,
+ Destination: "/etc/hostname",
+ Options: []string{"rw", "bind"},
+ }
+ g.AddMount(hostnameMnt)
if c.config.User != "" {
if !c.state.Mounted {