Skip to content

Commit be36bcf

Browse files
authored
Refactor Makefile and update versions in Dockerfile (#30)
* Refactor Makefile and update versions in Dockerfile - refactors Makefile to generate Dockerfiles with Dockerfile.template - updates version of Go to 1.22 and alpine to 3.19.1 in Dockerfiles - adds new Dockerfiles for sim, blockgen, deserializer, and rules-migrator commands - update .gitignore to ignore new commands Signed-off-by: Charlie Le <[email protected]> * Update changelog Signed-off-by: Charlie Le <[email protected]> --------- Signed-off-by: Charlie Le <[email protected]>
1 parent 0fd01bb commit be36bcf

File tree

14 files changed

+122
-103
lines changed

14 files changed

+122
-103
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ cmd/chunktool/chunktool
33
cmd/logtool/logtool
44
cmd/rules-migrator/rules-migrator
55
cmd/e2ealerting/e2ealerting
6+
cmd/blockscopy/blockscopy
7+
cmd/benchtool/benchtool
8+
cmd/deserializer/deserializer
9+
cmd/blockgen/blockgen
10+
cmd/sim/sim
611
.uptodate
712
.pkg
813
.cache
@@ -13,3 +18,4 @@ dist/
1318
/metrics-in-grafana.json
1419
/prometheus-metrics.json
1520
/metrics-in-ruler.json
21+
.idea/

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Order should be `CHANGE`, `FEATURE`, `ENHANCEMENT`, and `BUGFIX`
44

55
## unreleased/master
66
* [CHANGE] Upgrade to v1.13.2
7+
* [CHANGE] Updates version of Go to 1.22 and Alpine to 3.19.1 in Dockerfiles
78
* [FEATURE] Make rulerAPI Path configurable
89
* [FEATURE] Add tool to deserialize alertmanager state file
910

Dockerfile.template

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM golang:1.22.2-bookworm as build
2+
ARG GOARCH="amd64"
3+
COPY . /build_dir
4+
WORKDIR /build_dir
5+
ENV GOPROXY=https://proxy.golang.org
6+
RUN make clean && make {{APP_NAME}}
7+
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/{{APP_NAME}}/{{APP_NAME}} /usr/bin/{{APP_NAME}}
11+
EXPOSE 80
12+
ENTRYPOINT [ "/usr/bin/{{APP_NAME}}" ]

Makefile

Lines changed: 24 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,46 @@
1-
.PHONY: all images lint test clean cross
1+
.PHONY: all images lint test clean cross dockerfiles run-images $(APP_NAMES)
22

33
.DEFAULT_GOAL := all
44
IMAGE_PREFIX ?= cortexproject
55
IMAGE_TAG := $(shell ./tools/image-tag)
66
GIT_REVISION := $(shell git rev-parse --short HEAD)
77
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
88
GO_FLAGS := -mod=vendor -ldflags "-extldflags \"-static\" -s -w -X $(VPREFIX).Branch=$(GIT_BRANCH) -X $(VPREFIX).Version=$(IMAGE_TAG) -X $(VPREFIX).Revision=$(GIT_REVISION)" -tags netgo
9+
APP_NAMES := benchtool blockgen blockscopy chunktool cortextool deserializer e2ealerting logtool rules-migrator sim
910

10-
all: cortextool chunktool logtool
11-
images: cortextool-image chunktool-image logtool-image benchtool-image
12-
benchtool: cmd/benchtool/benchtool
13-
cortextool: cmd/cortextool/cortextool
14-
chunktool: cmd/chunktool/chunktool
15-
logtool: cmd/logtool/logtool
16-
e2ealerting: cmd/e2ealerting/e2ealerting
17-
blockscopy: cmd/blockscopy/blockscopy
18-
deserializer: cmd/deserializer/deserializer
11+
all: $(APP_NAMES)
12+
images: $(addsuffix -image, $(APP_NAMES))
1913

20-
benchtool-image:
21-
$(SUDO) docker build -t $(IMAGE_PREFIX)/benchtool -f cmd/benchtool/Dockerfile .
22-
$(SUDO) docker tag $(IMAGE_PREFIX)/benchtool $(IMAGE_PREFIX)/benchtool:$(IMAGE_TAG)
14+
%-image:
15+
$(SUDO) docker build -t $(IMAGE_PREFIX)/$* -f cmd/$*/Dockerfile .
16+
$(SUDO) docker tag $(IMAGE_PREFIX)/$* $(IMAGE_PREFIX)/$*:$(IMAGE_TAG)
2317

24-
cortextool-image:
25-
$(SUDO) docker build -t $(IMAGE_PREFIX)/cortextool -f cmd/cortextool/Dockerfile .
26-
$(SUDO) docker tag $(IMAGE_PREFIX)/cortextool $(IMAGE_PREFIX)/cortextool:$(IMAGE_TAG)
18+
$(APP_NAMES): %: $(shell find cmd/$* -name '*.go')
19+
CGO_ENABLED=0 go build $(GO_FLAGS) -o ./cmd/$@ ./cmd/$*
2720

28-
chunktool-image:
29-
$(SUDO) docker build -t $(IMAGE_PREFIX)/chunktool -f cmd/chunktool/Dockerfile .
30-
$(SUDO) docker tag $(IMAGE_PREFIX)/chunktool $(IMAGE_PREFIX)/chunktool:$(IMAGE_TAG)
21+
dockerfiles: Dockerfile.template
22+
for app in $(APP_NAMES); do \
23+
sed "s/{{APP_NAME}}/$$app/g" Dockerfile.template > cmd/$$app/Dockerfile; \
24+
done
3125

32-
logtool-image:
33-
$(SUDO) docker build -t $(IMAGE_PREFIX)/logtool -f cmd/logtool/Dockerfile .
34-
$(SUDO) docker tag $(IMAGE_PREFIX)/logtool $(IMAGE_PREFIX)/logtool:$(IMAGE_TAG)
35-
36-
e2ealerting-image:
37-
$(SUDO) docker build -t $(IMAGE_PREFIX)/e2ealerting -f cmd/e2ealerting/Dockerfile .
38-
$(SUDO) docker tag $(IMAGE_PREFIX)/e2ealerting $(IMAGE_PREFIX)/e2ealerting:$(IMAGE_TAG)
39-
push-e2ealerting-image: e2ealerting-image
40-
$(SUDO) docker push $(IMAGE_PREFIX)/e2ealerting:$(IMAGE_TAG)
41-
42-
blockscopy-image:
43-
$(SUDO) docker build -t $(IMAGE_PREFIX)/blockscopy -f cmd/blockscopy/Dockerfile .
44-
$(SUDO) docker tag $(IMAGE_PREFIX)/blockscopy $(IMAGE_PREFIX)/blockscopy:$(IMAGE_TAG)
45-
46-
cmd/benchtool/benchtool: $(APP_GO_FILES) cmd/benchtool/main.go
47-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
48-
49-
cmd/cortextool/cortextool: $(APP_GO_FILES) cmd/cortextool/main.go
50-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
51-
52-
cmd/chunktool/chunktool: $(APP_GO_FILES) cmd/chunktool/main.go
53-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
54-
55-
cmd/logtool/logtool: $(APP_GO_FILES) cmd/logtool/main.go
56-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
57-
58-
cmd/e2ealerting/e2ealerting: $(APP_GO_FILES) cmd/e2ealerting/main.go
59-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
60-
61-
cmd/rules-migrator/rules-migrator: $(APP_GO_FILES) cmd/rules-migrator/main.go
62-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
63-
64-
cmd/blockscopy/blockscopy: $(APP_GO_FILES) cmd/blockscopy/main.go
65-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
66-
67-
cmd/deserializer/deserializer: $(APP_GO_FILES) cmd/deserializer/main.go
68-
CGO_ENABLED=0 go build $(GO_FLAGS) -o $@ ./$(@D)
26+
run-images:
27+
for app in $(APP_NAMES); do \
28+
$(SUDO) docker run --rm $(IMAGE_PREFIX)/$$app:$(IMAGE_TAG) --help; \
29+
done
6930

7031
lint:
7132
golangci-lint run -v
7233

7334
cross:
74-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/benchtool
75-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/blockgen
76-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/blockscopy
77-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/chunktool
78-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/cortextool
79-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/e2ealerting
80-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/logtool
81-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/rules-migrator
82-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/sim
83-
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/deserializer
35+
for app in $(APP_NAMES); do \
36+
CGO_ENABLED=0 gox -output="dist/{{.Dir}}-{{.OS}}-{{.Arch}}" -ldflags=${LDFLAGS} -arch="amd64" -os="linux windows darwin" -osarch="darwin/arm64" ./cmd/$$app; \
37+
done
8438

8539
test:
8640
go test -mod=vendor -p=8 ./pkg/...
8741

8842
clean:
89-
rm -rf cmd/benchtool/benchtool
90-
rm -rf cmd/cortextool/cortextool
91-
rm -rf cmd/chunktool/chunktool
92-
rm -rf cmd/logtool/logtool
93-
rm -rf cmd/e2ealerting/e2ealerting
94-
rm -rf cmd/blockscopy/blockscopy
95-
rm -rf cmd/deserializer/deserializer
43+
for app in $(APP_NAMES); do \
44+
rm -f cmd/$$app/$$app; \
45+
done
46+
rm -rf dist

cmd/benchtool/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM golang:1.16.15-stretch as build
1+
FROM golang:1.22.2-bookworm as build
22
ARG GOARCH="amd64"
33
COPY . /build_dir
44
WORKDIR /build_dir
55
ENV GOPROXY=https://proxy.golang.org
66
RUN make clean && make benchtool
77

8-
FROM alpine:3.14
9-
RUN apk add --update --no-cache ca-certificates
10-
COPY --from=build /build_dir/cmd/benchtool/benchtool /usr/bin/benchtool
11-
EXPOSE 80
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/benchtool/benchtool /usr/bin/benchtool
11+
EXPOSE 80
1212
ENTRYPOINT [ "/usr/bin/benchtool" ]

cmd/blockgen/Dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM golang:1.22.2-bookworm as build
2+
ARG GOARCH="amd64"
3+
COPY . /build_dir
4+
WORKDIR /build_dir
5+
ENV GOPROXY=https://proxy.golang.org
6+
RUN make clean && make blockgen
7+
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/blockgen/blockgen /usr/bin/blockgen
11+
EXPOSE 80
12+
ENTRYPOINT [ "/usr/bin/blockgen" ]

cmd/blockscopy/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM golang:1.16.15-stretch as build
1+
FROM golang:1.22.2-bookworm as build
22
ARG GOARCH="amd64"
33
COPY . /build_dir
44
WORKDIR /build_dir
55
ENV GOPROXY=https://proxy.golang.org
66
RUN make clean && make blockscopy
77

8-
FROM alpine:3.14
9-
RUN apk add --update --no-cache ca-certificates
10-
COPY --from=build /build_dir/cmd/blockscopy/blockscopy /usr/bin/blockscopy
11-
EXPOSE 80
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/blockscopy/blockscopy /usr/bin/blockscopy
11+
EXPOSE 80
1212
ENTRYPOINT [ "/usr/bin/blockscopy" ]

cmd/chunktool/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM golang:1.16.15-stretch as build
1+
FROM golang:1.22.2-bookworm as build
22
ARG GOARCH="amd64"
33
COPY . /build_dir
44
WORKDIR /build_dir
55
ENV GOPROXY=https://proxy.golang.org
66
RUN make clean && make chunktool
77

8-
FROM alpine:3.14
9-
RUN apk add --update --no-cache ca-certificates
10-
COPY --from=build /build_dir/cmd/chunktool/chunktool /usr/bin/chunktool
11-
EXPOSE 80
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/chunktool/chunktool /usr/bin/chunktool
11+
EXPOSE 80
1212
ENTRYPOINT [ "/usr/bin/chunktool" ]

cmd/cortextool/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM golang:1.16.15-stretch as build
1+
FROM golang:1.22.2-bookworm as build
22
ARG GOARCH="amd64"
33
COPY . /build_dir
44
WORKDIR /build_dir
55
ENV GOPROXY=https://proxy.golang.org
66
RUN make clean && make cortextool
77

8-
FROM alpine:3.14
9-
RUN apk add --update --no-cache ca-certificates
10-
COPY --from=build /build_dir/cmd/cortextool/cortextool /usr/bin/cortextool
11-
EXPOSE 80
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/cortextool/cortextool /usr/bin/cortextool
11+
EXPOSE 80
1212
ENTRYPOINT [ "/usr/bin/cortextool" ]

cmd/deserializer/Dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM golang:1.22.2-bookworm as build
2+
ARG GOARCH="amd64"
3+
COPY . /build_dir
4+
WORKDIR /build_dir
5+
ENV GOPROXY=https://proxy.golang.org
6+
RUN make clean && make deserializer
7+
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/deserializer/deserializer /usr/bin/deserializer
11+
EXPOSE 80
12+
ENTRYPOINT [ "/usr/bin/deserializer" ]

cmd/e2ealerting/Dockerfile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
FROM golang:1.16.15-stretch as build
1+
FROM golang:1.22.2-bookworm as build
22
ARG GOARCH="amd64"
33
COPY . /build_dir
44
WORKDIR /build_dir
5+
ENV GOPROXY=https://proxy.golang.org
56
RUN make clean && make e2ealerting
67

7-
FROM alpine:3.14
8-
RUN apk add --update --no-cache ca-certificates
9-
COPY --from=build /build_dir/cmd/e2ealerting/e2ealerting /usr/bin/e2ealerting
10-
EXPOSE 80
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/e2ealerting/e2ealerting /usr/bin/e2ealerting
11+
EXPOSE 80
1112
ENTRYPOINT [ "/usr/bin/e2ealerting" ]

cmd/logtool/Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM golang:1.16.15-stretch as build
1+
FROM golang:1.22.2-bookworm as build
22
ARG GOARCH="amd64"
33
COPY . /build_dir
44
WORKDIR /build_dir
55
ENV GOPROXY=https://proxy.golang.org
66
RUN make clean && make logtool
77

8-
FROM alpine:3.14
9-
RUN apk add --update --no-cache ca-certificates
10-
COPY --from=build /build_dir/cmd/logtool/logtool /usr/bin/logtool
11-
EXPOSE 80
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/logtool/logtool /usr/bin/logtool
11+
EXPOSE 80
1212
ENTRYPOINT [ "/usr/bin/logtool" ]

cmd/rules-migrator/Dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM golang:1.22.2-bookworm as build
2+
ARG GOARCH="amd64"
3+
COPY . /build_dir
4+
WORKDIR /build_dir
5+
ENV GOPROXY=https://proxy.golang.org
6+
RUN make clean && make rules-migrator
7+
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/rules-migrator/rules-migrator /usr/bin/rules-migrator
11+
EXPOSE 80
12+
ENTRYPOINT [ "/usr/bin/rules-migrator" ]

cmd/sim/Dockerfile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM golang:1.22.2-bookworm as build
2+
ARG GOARCH="amd64"
3+
COPY . /build_dir
4+
WORKDIR /build_dir
5+
ENV GOPROXY=https://proxy.golang.org
6+
RUN make clean && make sim
7+
8+
FROM alpine:3.19.1
9+
RUN apk add --update --no-cache ca-certificates
10+
COPY --from=build /build_dir/cmd/sim/sim /usr/bin/sim
11+
EXPOSE 80
12+
ENTRYPOINT [ "/usr/bin/sim" ]

0 commit comments

Comments
 (0)