diff --git a/Dockerfile b/Dockerfile index 010abfa..de1ce64 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,22 @@ # Build a small image -FROM --platform=$BUILDPLATFORM golang:alpine3.17 AS builder +FROM --platform=${BUILDPLATFORM} golang:alpine3 AS builder +ARG TARGETOS +ARG TARGETARCH +ARG TARGETPLATFORM WORKDIR /go/src -COPY . . -ARG TARGETOS TARGETARCH -RUN GO111MODULE=on CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o bin/formolcli main.go +COPY go.mod go.mod +COPY go.sum go.sum +COPY formol/ formol/ +RUN go mod download +COPY main.go main.go +COPY cmd/ cmd/ +COPY standalone/ standalone/ +COPY controllers/ controllers/ +RUN GO111MODULE=on CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o bin/formolcli main.go -FROM alpine:3.17 -RUN apk add --no-cache su-exec restic postgresql-client +FROM --platform=${TARGETPLATFORM} alpine:3 +RUN apk add --no-cache su-exec restic COPY --from=builder /go/src/bin/formolcli /usr/local/bin # Command to run diff --git a/Dockerfile.amd64 b/Dockerfile.amd64 deleted file mode 100644 index 7f0d6c6..0000000 --- a/Dockerfile.amd64 +++ /dev/null @@ -1,8 +0,0 @@ -# Build a small image -FROM --platform=linux/amd64 alpine:3 -RUN apk add --no-cache su-exec restic -COPY ./bin/formolcli /usr/local/bin - -# Command to run -ENTRYPOINT ["/usr/local/bin/formolcli"] -CMD ["--help"] diff --git a/Dockerfile.arm64 b/Dockerfile.arm64 deleted file mode 100644 index 5e39629..0000000 --- a/Dockerfile.arm64 +++ /dev/null @@ -1,8 +0,0 @@ -# Build a small image -FROM --platform=linux/arm64 alpine:3 -RUN apk add --no-cache su-exec restic -COPY ./bin/formolcli /usr/local/bin - -# Command to run -ENTRYPOINT ["/usr/local/bin/formolcli"] -CMD ["--help"] diff --git a/Makefile b/Makefile index 2a5b0a3..6fbfadb 100644 --- a/Makefile +++ b/Makefile @@ -4,15 +4,12 @@ VERSION ?= latest IMG ?= docker.io/desmo999r/formolcli:$(VERSION) MANIFEST = formolcli-multiarch BINDIR = ./bin +PLATFORMS ?= linux/arm64,linux/amd64 .PHONY: formolcli formolcli: fmt vet GO111MODULE=on CGO_ENABLED=0 GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o $(BINDIR)/formolcli main.go -#.PHONY: formolcli-arm64 -#formolcli-arm64: GOARCH = arm64 -#formolcli-arm64: formolcli - .PHONY: fmt fmt: go fmt ./... @@ -21,13 +18,9 @@ fmt: vet: go vet ./... -.PHONY: docker-build -docker-build: formolcli - buildah bud --tag $(IMG) --manifest $(MANIFEST) --arch $(GOARCH) Dockerfile.$(GOARCH) - -.PHONY: docker-build-arm64 -docker-build-arm64: GOARCH = arm64 -docker-build-arm64: docker-build +.PHONY: docker-build-multiarch +docker-build-multiarch: + buildah bud --manifest $(MANIFEST) --platform=$(PLATFORMS) . .PHONY: docker-push docker-push: