mirror of
https://github.com/prymitive/karma
synced 2026-05-05 03:16:51 +00:00
fix(build): speed up docker builds
Copy only what's needed rather then entire repo, needs more steps but allows for faster builds
This commit is contained in:
14
Dockerfile
14
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
|
||||
|
||||
6
Makefile
6
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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user