GithubHelp home page GithubHelp logo

Comments (8)

benediktarnold avatar benediktarnold commented on September 1, 2024

The solution was as simple as:

go get github.com/docker/machine/libmachine/drivers/plugin
go get github.com/hypriot/docker-machine-hypriot

But I don't understand the second go get. Why should I go get the repo I have checked out in the current working dir?

from docker-machine-hypriot.

StefanScherer avatar StefanScherer commented on September 1, 2024

@benediktarnold Thanks for the solution. I think you have cloned the repo outside of your GOPATH. The dependencies normally are looked up in GOPATH as shown in the output above.
So the second go get just clones the sources again in the GOPATH.

The idea with the Makefile + Dockerfile is that nobody has to setup go and the whole development environment for GO directly on the laptop ;-)

BTW: I want to make some progress with this repo as I also want to use it with latest docker-machine again :)

from docker-machine-hypriot.

benediktarnold avatar benediktarnold commented on September 1, 2024

I think I have to read about go development at all ;-)
Found a documentation on how to build locally in the docker-machine project: https://github.com/docker/machine/blob/master/CONTRIBUTING.md

I like the idea with the build inside the container, but if you need a binary for OSX this does not work. Maybe cross compiling will do the trick, but I need to read about this as well ;-)

from docker-machine-hypriot.

benediktarnold avatar benediktarnold commented on September 1, 2024

@StefanScherer I tried to setup a machine with this driver against hypriot 0.6.1 (I don't think the version matters) and I was only successful using my docker-machine fork with a custom provisioner https://github.com/benediktarnold/machine/blob/hypriot/libmachine/provision/hypriot.go

This is basically a copy of the debian provisioner with overlay as default Storage driver and a changed name that gets compared with the os-release ID, during search for the correct provisioner.

I don't like this heavily copy and pasted code but in a first place it works.

from docker-machine-hypriot.

StefanScherer avatar StefanScherer commented on September 1, 2024

@benediktarnold Thanks for not giving up ;-) Just to understand it right, you need to build docker-machine itself with your fork to have the plugin up and running?

That's what I stopped 2 months ago, but hadn't the time to investigate it yet. The docker-machine 0.4.1 fork where no driver plugins existed yet also has a provisioner for hypriot.
And what I want to find out is whether a driver plugin also can add/register a provisioner from the driver plugin binary.

If that is possible that would be great to write such an external plugin. If not we have to send a PR to upstream docker/machine repo to add the provisioner code there. Or there should be external provisioner plugins as well...

from docker-machine-hypriot.

StefanScherer avatar StefanScherer commented on September 1, 2024

The docker-machine 0.4.1 changes for hypriot are here:

But with the external driver plugin I think even registering a provisioner in the external driver plugin won't work as the provision steps are called from the docker-machine main binary and thus able to talk over RPC with the driver plugin.

I haven't seen any external docker-machine driver plugin that also needs additional provisioners as they "only" have to drive another hypervisor or cloud with an Intel based OS that is handled with the main binary.

from docker-machine-hypriot.

benediktarnold avatar benediktarnold commented on September 1, 2024

Yes and it turns out that I only need the changes in docker-machine ;-) No need for a special driver. It works great with the generic driver.

Thanks for the links to your provisioner. I merged into my branch and made it compatible with the latest docker-machine master branch. It is way better than my initial provisioner which was basically a rebranded debian provisioner. You can find my fork here https://github.com/benediktarnold/machine/tree/hypriot

Unless docker-machine has plugin support for provisioners we need to make a PR.

from docker-machine-hypriot.

StefanScherer avatar StefanScherer commented on September 1, 2024

@benediktarnold That's great! Probably we should update some parts of the code to be more similar to upstream provisioners.

But a PR could be difficult to be merged as what I have seen with the photon provisioner. There is no official ARM docker deb package yet so linking to our packagecloud to fetch an "inoffical" docker binary would be a problem in upstream, I think.

from docker-machine-hypriot.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.