mirror of https://github.com/docker/docs.git
add domainname support
This commit is contained in:
parent
49b5c44ee9
commit
0a436e03b8
21
container.go
21
container.go
|
|
@ -11,6 +11,7 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
|
|
@ -20,7 +21,6 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
"net"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Container struct {
|
type Container struct {
|
||||||
|
|
@ -61,6 +61,7 @@ type Container struct {
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Hostname string
|
Hostname string
|
||||||
|
Domainname string
|
||||||
User string
|
User string
|
||||||
Memory int64 // Memory limit (in bytes)
|
Memory int64 // Memory limit (in bytes)
|
||||||
MemorySwap int64 // Total memory usage (memory + swap); set `-1' to disable swap
|
MemorySwap int64 // Total memory usage (memory + swap); set `-1' to disable swap
|
||||||
|
|
@ -203,8 +204,17 @@ func ParseRun(args []string, capabilities *Capabilities) (*Config, *HostConfig,
|
||||||
return nil, nil, cmd, err
|
return nil, nil, cmd, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hostname := *flHostname
|
||||||
|
domainname := ""
|
||||||
|
|
||||||
|
parts := strings.SplitN(hostname, ".", 2)
|
||||||
|
if len(parts) > 1 {
|
||||||
|
hostname = parts[0]
|
||||||
|
domainname = parts[1]
|
||||||
|
}
|
||||||
config := &Config{
|
config := &Config{
|
||||||
Hostname: *flHostname,
|
Hostname: hostname,
|
||||||
|
Domainname: domainname,
|
||||||
PortSpecs: flPorts,
|
PortSpecs: flPorts,
|
||||||
User: *flUser,
|
User: *flUser,
|
||||||
Tty: *flTty,
|
Tty: *flTty,
|
||||||
|
|
@ -692,6 +702,9 @@ func (container *Container) Start(hostConfig *HostConfig) error {
|
||||||
params = append(params, "-e", "TERM=xterm")
|
params = append(params, "-e", "TERM=xterm")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
params = append(params, "-h", container.Config.Hostname)
|
||||||
|
params = append(params, "-d", container.Config.Domainname)
|
||||||
|
|
||||||
// Setup environment
|
// Setup environment
|
||||||
params = append(params,
|
params = append(params,
|
||||||
"-e", "HOME=/",
|
"-e", "HOME=/",
|
||||||
|
|
@ -827,10 +840,10 @@ func (container *Container) allocateNetwork() error {
|
||||||
portSpecs = container.Config.PortSpecs
|
portSpecs = container.Config.PortSpecs
|
||||||
} else {
|
} else {
|
||||||
for backend, frontend := range container.NetworkSettings.PortMapping["Tcp"] {
|
for backend, frontend := range container.NetworkSettings.PortMapping["Tcp"] {
|
||||||
portSpecs = append(portSpecs, fmt.Sprintf("%s:%s/tcp",frontend, backend))
|
portSpecs = append(portSpecs, fmt.Sprintf("%s:%s/tcp", frontend, backend))
|
||||||
}
|
}
|
||||||
for backend, frontend := range container.NetworkSettings.PortMapping["Udp"] {
|
for backend, frontend := range container.NetworkSettings.PortMapping["Udp"] {
|
||||||
portSpecs = append(portSpecs, fmt.Sprintf("%s:%s/udp",frontend, backend))
|
portSpecs = append(portSpecs, fmt.Sprintf("%s:%s/udp", frontend, backend))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/dotcloud/docker/utils"
|
"github.com/dotcloud/docker/utils"
|
||||||
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
@ -92,7 +93,8 @@ func SysInit() {
|
||||||
var u = flag.String("u", "", "username or uid")
|
var u = flag.String("u", "", "username or uid")
|
||||||
var gw = flag.String("g", "", "gateway address")
|
var gw = flag.String("g", "", "gateway address")
|
||||||
var workdir = flag.String("w", "", "workdir")
|
var workdir = flag.String("w", "", "workdir")
|
||||||
|
var hostname = flag.String("h", "", "hostname")
|
||||||
|
var domainname = flag.String("d", "", "domainname")
|
||||||
var flEnv ListOpts
|
var flEnv ListOpts
|
||||||
flag.Var(&flEnv, "e", "Set environment variables")
|
flag.Var(&flEnv, "e", "Set environment variables")
|
||||||
|
|
||||||
|
|
@ -101,6 +103,7 @@ func SysInit() {
|
||||||
cleanupEnv(flEnv)
|
cleanupEnv(flEnv)
|
||||||
setupNetworking(*gw)
|
setupNetworking(*gw)
|
||||||
setupWorkingDirectory(*workdir)
|
setupWorkingDirectory(*workdir)
|
||||||
|
setupHostname(*hostname, *domainname)
|
||||||
changeUser(*u)
|
changeUser(*u)
|
||||||
executeProgram(flag.Arg(0), flag.Args())
|
executeProgram(flag.Arg(0), flag.Args())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue