Files
linuxkit/src/cmd/moby/run_darwin.go
Rolf Neugebauer d6e50e72d0 moby: Add a 'run' command to execute an image on hyperkit
'moby run' will use the kernel and initrd image produced
by 'moby build' and, on macOS, will run it inside a
hyperkit VM. This assumes that you have a recent version
of Docker for Mac installed as it re-uses the hyperkit
and VPNKit from it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-03-22 14:47:56 +00:00

52 lines
883 B
Go

// +build darwin
package main
import (
"io/ioutil"
"log"
"os"
"os/user"
"github.com/docker/hyperkit/go"
)
func run(cpus, mem, diskSz int, disk string, args []string) {
prefix := "moby"
if len(args) > 0 {
prefix = args[0]
}
cmdline, err := ioutil.ReadFile(prefix + "-cmdline")
if err != nil {
log.Fatalf("Cannot open cmdline file: %v", err)
}
if diskSz != 0 && disk == "" {
disk = prefix + "-disk.img"
}
h, err := hyperkit.New("", "", "auto", disk)
if err != nil {
log.Fatalln("Error creating hyperkit: ", err)
}
h.Kernel = prefix + "-bzImage"
h.Initrd = prefix + "-initrd.img"
h.CPUs = cpus
h.Memory = mem
h.DiskSize = diskSz
err = h.Run(string(cmdline))
if err != nil {
log.Fatalf("Cannot run hyperkit: %v", err)
}
}
func getHome() string {
if usr, err := user.Current(); err == nil {
return usr.HomeDir
}
return os.Getenv("HOME")
}