From 96a222ef481420743894a3caa4b32704db974542 Mon Sep 17 00:00:00 2001 From: exfly Date: Wed, 10 Jan 2024 10:28:23 +0800 Subject: [PATCH] feat: multiarch docker image --- .gitignore | 2 +- Dockerfile | 6 ++++-- Makefile | 6 ++++-- pgpool2_exporter.go | 1 - 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 4d551bb..5889078 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /.build /.tarballs -pgpool2_exporter +pgpool2_exporter* *.tar.gz diff --git a/Dockerfile b/Dockerfile index ec1552e..2875719 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ -FROM quay.io/prometheus/busybox:latest +FROM --platform=$BUILDPLATFORM quay.io/prometheus/busybox:latest LABEL maintainer="Bo Peng " +ARG TARGETARCH + ENV POSTGRES_USERNAME postgres ENV POSTGRES_PASSWORD postgres ENV POSTGRES_DATABASE postgres @@ -8,7 +10,7 @@ ENV PGPOOL_SERVICE localhost ENV PGPOOL_SERVICE_PORT 9999 ENV SSLMODE disable -COPY pgpool2_exporter /bin/pgpool2_exporter +COPY pgpool2_exporter-$TARGETARCH /bin/pgpool2_exporter CMD ["/bin/sh", "-c", "export DATA_SOURCE_USER=\"${POSTGRES_USERNAME}\" ; export DATA_SOURCE_PASS=\"${POSTGRES_PASSWORD}\" ; export DATA_SOURCE_URI=\"${PGPOOL_SERVICE}:${PGPOOL_SERVICE_PORT}/${POSTGRES_DATABASE}?sslmode=${SSLMODE}\" ; /bin/pgpool2_exporter"] diff --git a/Makefile b/Makefile index 8f45c06..541234f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ GO := go GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH))) +GOARCH ?= amd64 PROMU ?= $(GOPATH)/bin/promu pkgs = $(shell $(GO) list ./... | grep -v /vendor/) @@ -14,7 +15,8 @@ DOCKER_IMAGE_TAG ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD)) build: promu @echo ">> building binaries" - @$(PROMU) build --prefix $(PREFIX) + @$(PROMU) build -v --prefix $(PREFIX) + mv pgpool2_exporter pgpool2_exporter-$(GOARCH) crossbuild: promu @echo ">> building cross-platform binaries" @@ -35,6 +37,6 @@ tarballs: crossbuild docker: @echo ">> building docker image" - @docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" . + @docker buildx build --push --platform linux/amd64,linux/arm64 -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" . .PHONY: promu build crossbuild tarball tarballs docker diff --git a/pgpool2_exporter.go b/pgpool2_exporter.go index 5774764..a2a701d 100644 --- a/pgpool2_exporter.go +++ b/pgpool2_exporter.go @@ -28,7 +28,6 @@ import ( "fmt" "math" "net/url" - "os" "regexp" "strconv" "sync"