1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2024-12-14 11:57:51 +00:00
node-feature-discovery/Dockerfile
Markus Lehtonen bff94eb107 Utilize multi-stage build to reduce docker image size
This reduces the size of the Docker image from ca. 1.2GB down to about
750MB.

Also, move unit tests from .travis.yml to Dockerfile. Final production
image is not able to run unit tests anymore, as sources are missing from
there.
2018-09-24 10:15:23 +03:00

41 lines
1.2 KiB
Docker

# Build node feature discovery
FROM golang:1.8 as builder
ADD . /go/src/github.com/kubernetes-incubator/node-feature-discovery
WORKDIR /go/src/github.com/kubernetes-incubator/node-feature-discovery
ENV CMT_CAT_VERSION="v1.2.0"
ARG NFD_VERSION
RUN case $(dpkg --print-architecture) in \
arm64) \
echo "skip rdt on Arm64 platform" \
;; \
*) \
git clone --depth 1 -b $CMT_CAT_VERSION https://github.com/intel/intel-cmt-cat.git && \
make -C intel-cmt-cat/lib install && \
make -C rdt-discovery && \
make -C rdt-discovery install \
;; \
esac
RUN go get github.com/Masterminds/glide
RUN glide install --strip-vendor
RUN go install \
-ldflags "-s -w -X main.version=$NFD_VERSION" \
github.com/kubernetes-incubator/node-feature-discovery
RUN go test .
# Create production image for running node feature discovery
FROM golang:1.8
COPY --from=builder /usr/local/bin /usr/local/bin
COPY --from=builder /usr/local/lib /usr/local/lib
RUN ldconfig
COPY --from=builder /go/bin/node-feature-discovery /usr/bin/node-feature-discovery
ENTRYPOINT ["/usr/bin/node-feature-discovery"]