X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=docker-build%2Fcpupooler%2FDockerfile;h=5b0e64d12788d784646b44bdee398747d3a59f93;hb=0b73036ff10ec9effd40b54363c640ebde359eab;hp=33dad869d730deacd0d2ced36219462cc4cf8df2;hpb=615d289d61440f17b130a351510d1a2adcf40b80;p=ta%2Fcaas-cpupooler.git diff --git a/docker-build/cpupooler/Dockerfile b/docker-build/cpupooler/Dockerfile index 33dad86..5b0e64d 100644 --- a/docker-build/cpupooler/Dockerfile +++ b/docker-build/cpupooler/Dockerfile @@ -12,36 +12,33 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM alpine:3.9 -MAINTAINER Balazs Szekeres +ARG BUILDER_BASE=golang:1.13-alpine +ARG FINAL_BASE=alpine:3.9.6 +ARG PROJECT_PATH=github.com/nokia/CPU-Pooler -ARG DEPENDENCY_MANAGER -ENV DEP_VERSION=$DEPENDENCY_MANAGER -ARG CPUPOOLER -ENV CPUPOOLER_VERSION=$CPUPOOLER -ENV GOPATH /build -ENV PATH /usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +# Build stage +FROM ${BUILDER_BASE} AS builder +ARG PROJECT_PATH +ENV CGO_ENABLED=0 +ENV GOOS=linux -RUN apk update \ -&& apk upgrade \ -&& apk add --no-cache --virtual .build-deps build-base git mercurial go glide bash tar curl \ -&& mkdir -p $GOPATH/src/github.com/nokia/CPU-Pooler \ -&& curl -fsSL -o /usr/local/bin/dep https://github.com/golang/dep/releases/download/v${DEP_VERSION}/dep-linux-amd64 \ -&& chmod +x /usr/local/bin/dep \ -&& curl -fsSL -k https://github.com/nokia/CPU-Pooler/archive/v${CPUPOOLER_VERSION}.tar.gz | tar zx --strip-components=1 -C $GOPATH/src/github.com/nokia/CPU-Pooler \ -&& cd $GOPATH/src/github.com/nokia/CPU-Pooler \ -&& dep ensure --vendor-only \ -# cpu-device-plugin -&& CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cpu-device-plugin ./cmd/cpu-device-plugin \ -&& mv $GOPATH/src/github.com/nokia/CPU-Pooler/cpu-device-plugin /cpu-device-plugin \ -# cpu-setter -&& CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cpu-setter ./cmd/cpusetter \ -&& mv $GOPATH/src/github.com/nokia/CPU-Pooler/cpu-setter /cpu-setter \ -# cpu-webhook -&& CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cpu-device-webhook ./cmd/webhook \ -&& mv $GOPATH/src/github.com/nokia/CPU-Pooler/cpu-device-webhook /cpu-device-webhook \ -&& apk del .build-deps \ -&& rm -rf $GOPATH \ -&& rm -rf /build \ -&& rm -rf /root/.glide +RUN apk update && apk add --no-cache curl git +WORKDIR ${GOPATH}/src/${PROJECT_PATH}/bin +WORKDIR ${GOPATH}/src/${PROJECT_PATH} +ADD go.* ./ +RUN go mod download +ADD . ./ +RUN go build -a -ldflags '-extldflags "-static"' -o bin/ ${PROJECT_PATH}/cmd/... +RUN mv bin/cpusetter bin/cpu-setter +RUN mv bin/webhook bin/cpu-device-webhook +RUN mv bin/process-starter /process-starter +# Multi-binary image stage +FROM ${FINAL_BASE} +MAINTAINER Gabor Mate +ARG PROJECT_PATH + +RUN apk update && apk add --no-cache curl util-linux && rm -f /var/cache/apk/* +COPY --from=builder /go/src/${PROJECT_PATH}/bin/cpu-* / + +ENTRYPOINT ["/bin/sh"] \ No newline at end of file