X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=docker-build%2Fcpupooler%2FDockerfile;h=5b0e64d12788d784646b44bdee398747d3a59f93;hb=0b73036ff10ec9effd40b54363c640ebde359eab;hp=52e3a26a8f49cdcee878d862d73e309e9a49aae9;hpb=491cc9200405931de807234cb0dc299bff76e3ea;p=ta%2Fcaas-cpupooler.git diff --git a/docker-build/cpupooler/Dockerfile b/docker-build/cpupooler/Dockerfile index 52e3a26..5b0e64d 100644 --- a/docker-build/cpupooler/Dockerfile +++ b/docker-build/cpupooler/Dockerfile @@ -12,38 +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 -ENV BUILD_DIR="$GOPATH/src/github.com/nokia/CPU-Pooler" +# 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 \ -&& 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 \ -&& mkdir -p $BUILD_DIR \ -&& git clone https://github.com/Levovar/CPU-Pooler.git $BUILD_DIR \ -&& cd $BUILD_DIR \ -&& git fetch --tags \ -&& git checkout ${CPUPOOLER_VERSION} \ -&& 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 $BUILD_DIR/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 $BUILD_DIR/cpu-setter /cpu-setter \ -# cpu-webhook -&& CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -o cpu-device-webhook ./cmd/webhook \ -&& mv $BUILD_DIR/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