Skip to content

Commit 32129db

Browse files
committed
Working build & docker-build
1 parent 7053ffd commit 32129db

File tree

3 files changed

+670
-85
lines changed

3 files changed

+670
-85
lines changed

Makefile

+53-85
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,65 @@
1+
REGISTRY?=stevemcquaid
2+
IMAGE?=custom-metrics-apiserver
3+
TEMP_DIR:=$(shell mktemp -d)
14
ARCH?=amd64
5+
ALL_ARCH=amd64 arm arm64 ppc64le s390x
6+
ML_PLATFORMS=linux/amd64,linux/arm,linux/arm64,linux/ppc64le,linux/s390x
27
OUT_DIR?=./_output
3-
4-
.PHONY: all test verify-gofmt gofmt verify
8+
VENDOR_DOCKERIZED=0
9+
10+
VERSION?=latest
11+
12+
ifeq ($(ARCH),amd64)
13+
BASEIMAGE?=busybox
14+
endif
15+
ifeq ($(ARCH),arm)
16+
BASEIMAGE?=armhf/busybox
17+
endif
18+
ifeq ($(ARCH),arm64)
19+
BASEIMAGE?=aarch64/busybox
20+
endif
21+
ifeq ($(ARCH),ppc64le)
22+
BASEIMAGE?=ppc64le/busybox
23+
endif
24+
ifeq ($(ARCH),s390x)
25+
BASEIMAGE?=s390x/busybox
26+
endif
27+
28+
.PHONY: all build docker-build push-% push test verify-gofmt gofmt verify
529

630
all: build
731
build: vendor
832
CGO_ENABLED=0 GOARCH=$(ARCH) go build -a -tags netgo -o $(OUT_DIR)/$(ARCH)/sample-adapter github.com/stevemcquaid/custom-metrics-apiserver
933

34+
docker-build: vendor
35+
cp deploy/Dockerfile $(TEMP_DIR)
36+
cd $(TEMP_DIR) && sed -i "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile
37+
38+
docker run -it -v $(TEMP_DIR):/build -v $(shell pwd):/go/src/github.com/$(REGISTRY)/$(IMAGE) -e GOARCH=$(ARCH) golang:1.8 /bin/bash -c "\
39+
CGO_ENABLED=0 go build -a -tags netgo -o /build/sample-adapter github.com/$(REGISTRY)/$(IMAGE)"
40+
41+
docker build -t $(REGISTRY)/$(IMAGE)-$(ARCH):$(VERSION) $(TEMP_DIR)
42+
rm -rf $(TEMP_DIR)
43+
44+
push-%:
45+
$(MAKE) ARCH=$* docker-build
46+
docker push $(REGISTRY)/$(IMAGE)-$*:$(VERSION)
47+
48+
push: ./manifest-tool $(addprefix push-,$(ALL_ARCH))
49+
./manifest-tool push from-args --platforms $(ML_PLATFORMS) --template $(REGISTRY)/$(IMAGE)-ARCH:$(VERSION) --target $(REGISTRY)/$(IMAGE):$(VERSION)
50+
51+
./manifest-tool:
52+
curl -sSL https://github.com/estesp/manifest-tool/releases/download/v0.5.0/manifest-tool-linux-amd64 > manifest-tool
53+
chmod +x manifest-tool
54+
1055
vendor: glide.lock
56+
ifeq ($(VENDOR_DOCKERIZED),1)
57+
docker run -it -v $(shell pwd):/go/src/github.com/$(REGISTRY)/$(IMAGE) -w /go/src/github.com/$(REGISTRY)/$(IMAGE) golang:1.8 /bin/bash -c "\
58+
curl https://glide.sh/get | sh \
59+
&& glide install -v"
60+
else
1161
glide install -v
62+
endif
1263

1364
test: vendor
1465
CGO_ENABLED=0 go test ./pkg/...
@@ -24,86 +75,3 @@ verify: verify-gofmt test
2475
run:
2576
./$(OUT_DIR)/$(ARCH)/sample-adapter
2677

27-
28-
29-
30-
31-
32-
33-
# DIRECTXMAN
34-
35-
36-
# REGISTRY?=directxman12
37-
# IMAGE?=k8s-prometheus-adapter
38-
# TEMP_DIR:=$(shell mktemp -d)
39-
# ARCH?=amd64
40-
# ALL_ARCH=amd64 arm arm64 ppc64le s390x
41-
# ML_PLATFORMS=linux/amd64,linux/arm,linux/arm64,linux/ppc64le,linux/s390x
42-
# OUT_DIR?=./_output
43-
# VENDOR_DOCKERIZED=0
44-
45-
# VERSION?=latest
46-
47-
# ifeq ($(ARCH),amd64)
48-
# BASEIMAGE?=busybox
49-
# endif
50-
# ifeq ($(ARCH),arm)
51-
# BASEIMAGE?=armhf/busybox
52-
# endif
53-
# ifeq ($(ARCH),arm64)
54-
# BASEIMAGE?=aarch64/busybox
55-
# endif
56-
# ifeq ($(ARCH),ppc64le)
57-
# BASEIMAGE?=ppc64le/busybox
58-
# endif
59-
# ifeq ($(ARCH),s390x)
60-
# BASEIMAGE?=s390x/busybox
61-
# endif
62-
63-
# .PHONY: all build docker-build push-% push test verify-gofmt gofmt verify
64-
65-
# all: build
66-
# build: vendor
67-
# CGO_ENABLED=0 GOARCH=$(ARCH) go build -a -tags netgo -o $(OUT_DIR)/$(ARCH)/adapter github.com/directxman12/k8s-prometheus-adapter/cmd/adapter
68-
69-
# docker-build: vendor
70-
# cp deploy/Dockerfile $(TEMP_DIR)
71-
# cd $(TEMP_DIR) && sed -i "s|BASEIMAGE|$(BASEIMAGE)|g" Dockerfile
72-
73-
# docker run -it -v $(TEMP_DIR):/build -v $(shell pwd):/go/src/github.com/directxman12/k8s-prometheus-adapter -e GOARCH=$(ARCH) golang:1.8 /bin/bash -c "\
74-
# CGO_ENABLED=0 go build -a -tags netgo -o /build/adapter github.com/directxman12/k8s-prometheus-adapter/cmd/adapter"
75-
76-
# docker build -t $(REGISTRY)/$(IMAGE)-$(ARCH):$(VERSION) $(TEMP_DIR)
77-
# rm -rf $(TEMP_DIR)
78-
79-
# push-%:
80-
# $(MAKE) ARCH=$* docker-build
81-
# docker push $(REGISTRY)/$(IMAGE)-$*:$(VERSION)
82-
83-
# push: ./manifest-tool $(addprefix push-,$(ALL_ARCH))
84-
# ./manifest-tool push from-args --platforms $(ML_PLATFORMS) --template $(REGISTRY)/$(IMAGE)-ARCH:$(VERSION) --target $(REGISTRY)/$(IMAGE):$(VERSION)
85-
86-
# ./manifest-tool:
87-
# curl -sSL https://github.com/estesp/manifest-tool/releases/download/v0.5.0/manifest-tool-linux-amd64 > manifest-tool
88-
# chmod +x manifest-tool
89-
90-
# vendor: glide.lock
91-
# ifeq ($(VENDOR_DOCKERIZED),1)
92-
# docker run -it -v $(shell pwd):/go/src/github.com/directxman12/k8s-prometheus-adapter -w /go/src/github.com/directxman12/k8s-prometheus-adapter golang:1.8 /bin/bash -c "\
93-
# curl https://glide.sh/get | sh \
94-
# && glide install -v"
95-
# else
96-
# glide install -v
97-
# endif
98-
99-
# test: vendor
100-
# CGO_ENABLED=0 go test ./pkg/...
101-
102-
# verify-gofmt:
103-
# ./hack/gofmt-all.sh -v
104-
105-
# gofmt:
106-
# ./hack/gofmt-all.sh
107-
108-
# verify: verify-gofmt test
109-

deploy/Dockerfile

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM BASEIMAGE
2+
3+
COPY sample-adapter /
4+
5+
USER 1001:1001
6+
7+
ENTRYPOINT ["/sample-adapter"]

0 commit comments

Comments
 (0)