From a2d7ef13e8dc422a864cb61fbfacdf7635de6a34 Mon Sep 17 00:00:00 2001 From: Norbert Kiesel Date: Thu, 21 Sep 2017 18:01:30 -0700 Subject: [PATCH 1/2] Added Debian9 support --- Dockerfile.debian9 | 18 ++++++++++++++++++ Makefile | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.debian9 diff --git a/Dockerfile.debian9 b/Dockerfile.debian9 new file mode 100644 index 00000000000..9ef51da293e --- /dev/null +++ b/Dockerfile.debian9 @@ -0,0 +1,18 @@ +FROM debian:9 + +MAINTAINER Daniel Hiltgen + +ARG MACHINE_VERSION +ARG GO_VERSION +ENV GOPATH /go + +RUN apt-get update && apt-get install -y libvirt-dev curl git gcc +RUN curl -sSL https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz | tar -C /usr/local -xzf - +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/go/bin +RUN git clone --branch ${MACHINE_VERSION} https://github.com/docker/machine.git /go/src/github.com/docker/machine + +COPY . /go/src/github.com/dhiltgen/docker-machine-kvm +WORKDIR /go/src/github.com/dhiltgen/docker-machine-kvm +RUN go get -v -d ./... + +RUN go install -v ./cmd/docker-machine-driver-kvm diff --git a/Makefile b/Makefile index ce5d680c526..01051a7afe6 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ MACHINE_VERSION=v0.10.0 GO_VERSION=1.8.1 DESCRIBE=$(shell git describe --tags) -TARGETS=$(addprefix $(PREFIX)-, alpine3.4 alpine3.5 ubuntu14.04 ubuntu16.04 centos7) +TARGETS=$(addprefix $(PREFIX)-, alpine3.4 alpine3.5 ubuntu14.04 ubuntu16.04 centos7 debian9) build: $(TARGETS) From 0882898d45b5ad9f1f9c67f05cca947d4b129477 Mon Sep 17 00:00:00 2001 From: Norbert Kiesel Date: Thu, 21 Sep 2017 18:49:05 -0700 Subject: [PATCH 2/2] Added version number support --- Dockerfile.debian9 | 3 ++- Makefile | 2 +- cmd/docker-machine-driver-kvm/main.go | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Dockerfile.debian9 b/Dockerfile.debian9 index 9ef51da293e..d431c0fceb3 100644 --- a/Dockerfile.debian9 +++ b/Dockerfile.debian9 @@ -4,6 +4,7 @@ MAINTAINER Daniel Hiltgen ARG MACHINE_VERSION ARG GO_VERSION +ARG PLUGIN_VERSION ENV GOPATH /go RUN apt-get update && apt-get install -y libvirt-dev curl git gcc @@ -15,4 +16,4 @@ COPY . /go/src/github.com/dhiltgen/docker-machine-kvm WORKDIR /go/src/github.com/dhiltgen/docker-machine-kvm RUN go get -v -d ./... -RUN go install -v ./cmd/docker-machine-driver-kvm +RUN go install -v -ldflags="-X main.goVersion=${GO_VERSION} -X main.machineVersion=${MACHINE_VERSION} -X main.pluginVersion=${PLUGIN_VERSION}" ./cmd/docker-machine-driver-kvm diff --git a/Makefile b/Makefile index 01051a7afe6..fb0eccbfcde 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ $(PREFIX)-%: Dockerfile.% docker rmi -f $@ >/dev/null 2>&1 || true docker rm -f $@-extract > /dev/null 2>&1 || true echo "Building binaries for $@" - docker build --build-arg "MACHINE_VERSION=$(MACHINE_VERSION)" --build-arg "GO_VERSION=$(GO_VERSION)" -t $@ -f $< . + docker build --build-arg "MACHINE_VERSION=$(MACHINE_VERSION)" --build-arg "GO_VERSION=$(GO_VERSION)" --build-arg "PLUGIN_VERSION=$(DESCRIBE)" -t $@ -f $< . docker create --name $@-extract $@ sh docker cp $@-extract:/go/bin/docker-machine-driver-kvm ./ mv ./docker-machine-driver-kvm ./$@ diff --git a/cmd/docker-machine-driver-kvm/main.go b/cmd/docker-machine-driver-kvm/main.go index 4ea24fbec9c..67999c98435 100644 --- a/cmd/docker-machine-driver-kvm/main.go +++ b/cmd/docker-machine-driver-kvm/main.go @@ -3,8 +3,21 @@ package main import ( "github.com/dhiltgen/docker-machine-kvm" "github.com/docker/machine/libmachine/drivers/plugin" + "flag" + "fmt" ) +// Will be set using "-X" linker option during build +var goVersion = "undefined" +var machineVersion = "undefined" +var pluginVersion = "undefined" + func main() { - plugin.RegisterDriver(kvm.NewDriver("default", "path")) + versionPtr := flag.Bool("version", true, "print version number") + flag.Parse() + if *versionPtr { + fmt.Printf("go: %s\nmachine: %s\nplugin: %s\n", goVersion, machineVersion, pluginVersion) + } else { + plugin.RegisterDriver(kvm.NewDriver("default", "path")) + } }