diff --git a/Dockerfile b/Dockerfile index a62b2a4cc..bb515c361 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,20 @@ FROM node:10.16.3-alpine as nodejs-builder RUN apk add --update make git -COPY . /src +COPY Makefile /src/Makefile +COPY ui /src/ui RUN make -C /src ui FROM golang:1.13.1-alpine as go-builder -COPY --from=nodejs-builder /src /src -ARG VERSION RUN apk add --update make git +COPY Makefile /src/Makefile +COPY go.mod /src/go.mod +COPY go.sum /src/go.sum +RUN make -C /src download-deps +COPY --from=nodejs-builder /src/ui /src/ui +COPY --from=nodejs-builder /src/.build /src/.build +COPY cmd /src/cmd +COPY internal /src/internal +ARG VERSION RUN CGO_ENABLED=0 make -C /src VERSION="${VERSION:-dev}" karma FROM gcr.io/distroless/base diff --git a/Makefile b/Makefile index e2b098a8e..896913ea3 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ NAME := karma -VERSION := $(shell git describe --tags --always --dirty='-dev') +VERSION ?= $(shell git describe --tags --always --dirty='-dev') # Alertmanager instance used when running locally, points to mock data MOCK_PATH := $(CURDIR)/internal/mock/0.15.3 @@ -54,6 +54,10 @@ cmd/karma/bindata_assetfs.go: .build/deps-build-go.ok .build/artifacts-bindata_a $(NAME): .build/deps-build-go.ok go.mod cmd/karma/bindata_assetfs.go $(SOURCES) GO111MODULE=on go build -ldflags "-X main.version=$(VERSION)" ./cmd/karma +.PHONY: download-deps +download-deps: + GO111MODULE=on go mod download + word-split = $(word $2,$(subst -, ,$1)) cc-%: .build/deps-build-go.ok go.mod cmd/karma/bindata_assetfs.go $(SOURCES) $(eval GOOS := $(call word-split,$*,1)) diff --git a/demo/Dockerfile b/demo/Dockerfile index 7b05119b5..ba474b630 100644 --- a/demo/Dockerfile +++ b/demo/Dockerfile @@ -1,12 +1,20 @@ FROM node:10.16.3-alpine as nodejs-builder RUN apk add --update make git -COPY . /src +COPY Makefile /src/Makefile +COPY ui /src/ui RUN make -C /src ui FROM golang:1.13.1-alpine as go-builder -COPY --from=nodejs-builder /src /src -ARG VERSION RUN apk add --update make git +COPY Makefile /src/Makefile +COPY go.mod /src/go.mod +COPY go.sum /src/go.sum +RUN make -C /src download-deps +COPY --from=nodejs-builder /src/ui /src/ui +COPY --from=nodejs-builder /src/.build /src/.build +COPY cmd /src/cmd +COPY internal /src/internal +ARG VERSION RUN CGO_ENABLED=0 make -C /src VERSION="${VERSION:-dev}" karma FROM alpine:3.10