From 471aeb5ea4b35840291aa3b36f43fd25027bbf7b Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Thu, 15 Feb 2018 16:52:11 +0100 Subject: [PATCH] Set up multistage Docker build. By setting up a multistage Docker build, we can create the container image in a single command. This eliminates external setup and allows us to build this automatically on registries. --- Dockerfile | 9 ++++++++- Dockerfile.dev | 20 ++++++++++++++++++++ Makefile | 5 ++++- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 Dockerfile.dev diff --git a/Dockerfile b/Dockerfile index 74a620037..1716570a8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,16 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. +FROM golang:1.9.2 + +WORKDIR /go/src/github.com/kubernetes-incubator/descheduler +COPY . . +RUN make + FROM scratch MAINTAINER Avesh Agarwal -COPY _output/bin/descheduler /bin/descheduler +COPY --from=0 /go/src/github.com/kubernetes-incubator/descheduler/_output/bin/descheduler /bin/descheduler + CMD ["/bin/descheduler", "--help"] diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 000000000..e661ba223 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,20 @@ +# Copyright 2017 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +FROM scratch + +MAINTAINER Avesh Agarwal + +COPY _output/bin/descheduler /bin/descheduler + +CMD ["/bin/descheduler", "--help"] diff --git a/Makefile b/Makefile index 32c558c80..147ed8f82 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,10 @@ all: build build: CGO_ENABLED=0 go build ${LDFLAGS} -o _output/bin/descheduler github.com/kubernetes-incubator/descheduler/cmd/descheduler -image: build +dev-image: build + docker build -f Dockerfile.dev -t $(IMAGE) . + +image: docker build -t $(IMAGE) . clean: