diff --git a/Dockerfile b/Dockerfile index 19e5a2986..cb5eff6b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,8 +19,20 @@ RUN make install VERSION=$VERSION HOSTMOUNT_PREFIX=$HOSTMOUNT_PREFIX RUN make test -# Create production image for running node feature discovery -FROM debian:buster-slim +# Create full variant of the production image +FROM debian:buster-slim as full + +# Run as unprivileged user +USER 65534:65534 + +# Use more verbose logging of gRPC +ENV GRPC_GO_LOG_SEVERITY_LEVEL="INFO" + +COPY --from=builder /go/node-feature-discovery/nfd-worker.conf.example /etc/kubernetes/node-feature-discovery/nfd-worker.conf +COPY --from=builder /go/bin/* /usr/bin/ + +# Create minimal variant of the production image +FROM gcr.io/distroless/base as minimal # Run as unprivileged user USER 65534:65534 diff --git a/Makefile b/Makefile index 8f5e4e2e2..6d0a0ea16 100644 --- a/Makefile +++ b/Makefile @@ -72,10 +72,17 @@ install: image: yamls $(IMAGE_BUILD_CMD) --build-arg VERSION=$(VERSION) \ - --build-arg HOSTMOUNT_PREFIX=$(CONTAINER_HOSTMOUNT_PREFIX) \ - -t $(IMAGE_TAG) \ - $(foreach tag,$(IMAGE_EXTRA_TAGS),-t $(tag)) \ - $(IMAGE_BUILD_EXTRA_OPTS) ./ + --target full \ + --build-arg HOSTMOUNT_PREFIX=$(CONTAINER_HOSTMOUNT_PREFIX) \ + -t $(IMAGE_TAG) \ + $(foreach tag,$(IMAGE_EXTRA_TAGS),-t $(tag)) \ + $(IMAGE_BUILD_EXTRA_OPTS) ./ + $(IMAGE_BUILD_CMD) --build-arg VERSION=$(VERSION) \ + --target minimal \ + --build-arg HOSTMOUNT_PREFIX=$(CONTAINER_HOSTMOUNT_PREFIX) \ + -t $(IMAGE_TAG)-minimal \ + $(foreach tag,$(IMAGE_EXTRA_TAGS),-t $(tag)-minimal) \ + $(IMAGE_BUILD_EXTRA_OPTS) ./ yamls: $(yaml_instances) @@ -138,7 +145,8 @@ e2e-test: push: $(IMAGE_PUSH_CMD) $(IMAGE_TAG) - for tag in $(IMAGE_EXTRA_TAGS); do $(IMAGE_PUSH_CMD) $$tag; done + $(IMAGE_PUSH_CMD) $(IMAGE_TAG)-minimal + for tag in $(IMAGE_EXTRA_TAGS); do $(IMAGE_PUSH_CMD) $$tag; $(IMAGE_PUSH_CMD) $$tag-minimal; done poll-image: set -e; \