|
@@ -26,6 +26,14 @@ type DockerInitArgs struct {
|
|
args []string
|
|
args []string
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func setupHostname(args *DockerInitArgs) error {
|
|
|
|
+ hostname := getEnv(args, "HOSTNAME")
|
|
|
|
+ if hostname == "" {
|
|
|
|
+ return nil
|
|
|
|
+ }
|
|
|
|
+ return syscall.Sethostname([]byte(hostname))
|
|
|
|
+}
|
|
|
|
+
|
|
// Setup networking
|
|
// Setup networking
|
|
func setupNetworking(args *DockerInitArgs) error {
|
|
func setupNetworking(args *DockerInitArgs) error {
|
|
if args.gateway == "" {
|
|
if args.gateway == "" {
|
|
@@ -132,9 +140,23 @@ func setupEnv(args *DockerInitArgs) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func getEnv(args *DockerInitArgs, key string) string {
|
|
|
|
+ for _, kv := range args.env {
|
|
|
|
+ parts := strings.SplitN(kv, "=", 2)
|
|
|
|
+ if parts[0] == key && len(parts) == 2 {
|
|
|
|
+ return parts[1]
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return ""
|
|
|
|
+}
|
|
|
|
+
|
|
func executeProgram(args *DockerInitArgs) error {
|
|
func executeProgram(args *DockerInitArgs) error {
|
|
setupEnv(args)
|
|
setupEnv(args)
|
|
|
|
|
|
|
|
+ if err := setupHostname(args); err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
if err := setupNetworking(args); err != nil {
|
|
if err := setupNetworking(args); err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|