Skip to content

pierrezurek/docker-machine-xhyve

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-machine-xhyve

Docker Machine driver plugin for xhyve native OS X Hypervisor

Master branch inherited from nathanleclaire/docker-machine-xhyve. Thanks @nathanleclaire :)
If you have issues or pull-requests, Desired to be posted to this repository.

Required

docker-machine

https://github.com/docker/machine

!! Please do not post the issue of this repository to the docker/machine !!
It will interfere with the development of the docker-machine.
If you were doubt problem either, please post to this repository. I will judge.

Now, libmachine-rpc driver plugin method is merged docker-machine master branch.
https://github.com/docker/machine/commit/8aa1572e0dcd75762a7627e1056ef104317f44b9 Awesome @nathanleclaire 🎉

go get github.com/nathanleclaire/machine
cd $GOPATH/src/github.com/docker/machine
# Build docker-machine and some docker-machine official(embedded) driver binary
make build
# Install all binary into /usr/local/bin/
make install

xhyve-bindings

xhyve-bindings

Since it is was hard to os.exec itself that embedded xhyve.Exec, for the time being, is separated into xhyve-bindings.
Or, See experimental embedded xhyve branch embed-xhyve

$ go get -d github.com/zchee/xhyve-bindings
$ cd $GOPATH/src/github.com/zchee/xhyve-bindings
$ git checkout daemonize
$ make
$ make install

libguestfs

http://libguestfs.org/

Create ext.4 filesystem disk image using libguestfs golang binding.

$ brew tap zchee/libguestfs
$ brew install libguestfs --with-go --devel --env=std

Current status only support golang binding.

Also, downloading supermin appliance kernel files.
Warning! Kernel file size over 4GB!

Install

$ go get -d github.com/zchee/docker-machine-xhyve
$ cd $GOPATH/github.com/zchee/docker-machine-xhyve
$ make
$ make install

TODO

  • Shared folder support

  • Replace execute binary to syscall of golang

    • e.g. hdutil, dd
    • Create blank disk use libguestfs instead of dd
  • Replace generate uuid, execute uuidgen to native golang

  • Support(Ensure) kill, ls, restart, status, stop command

  • Cleanup code and more performance

  • Daemonize xhyve use syscall or go execute external process myself or OS X launchd daemon or other daemonize method

    • Since it is was hard to exec itself that embedded xhyve.Exec, for the time being, is separated into xhyve-bindings.
  • Replace exec uuid2mac binary to standalone vmnet.go, dhcp.go

  • Update xhyve source to unofficial edge branch

  • Occasionally fail convert UUID to IP

  • Crash on boot because of prltoolsd

About

Docker Machine driver plugin for xhyve (native OSX hypervisor)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 68.4%
  • C 29.5%
  • Makefile 2.1%