Multi-arch build
This commit is contained in:
2
.dockerignore
Normal file
2
.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
||||
Makefile
|
||||
README.md
|
||||
21
Dockerfile
21
Dockerfile
@@ -1,4 +1,19 @@
|
||||
FROM restic/restic:0.15.1
|
||||
RUN apk add --no-cache jq curl
|
||||
FROM golang:1.19-alpine AS builder
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/backup.sh"]
|
||||
ENV RESTIC_VERSION 0.15.1
|
||||
|
||||
RUN apk add --no-cache git
|
||||
RUN git clone --depth 1 --branch v${RESTIC_VERSION} https://github.com/restic/restic.git /go/src/github.com/restic/restic
|
||||
|
||||
WORKDIR /go/src/github.com/restic/restic
|
||||
|
||||
RUN go mod download
|
||||
RUN go run build.go
|
||||
|
||||
FROM alpine:latest AS restic
|
||||
|
||||
RUN apk add --update --no-cache ca-certificates fuse openssh-client tzdata jq curl
|
||||
|
||||
COPY --from=builder /go/src/github.com/restic/restic/restic /usr/bin
|
||||
|
||||
ENTRYPOINT ["/usr/bin/restic"]
|
||||
|
||||
14
Makefile
Normal file
14
Makefile
Normal file
@@ -0,0 +1,14 @@
|
||||
ORG ?= genunix
|
||||
VERSION = $(shell grep "ENV RESTIC_VERSION" Dockerfile | awk '{print $$3}')
|
||||
PLATFORMS ?= linux/arm/v7,linux/arm64/v8,linux/amd64
|
||||
|
||||
build-all: print-version build-version build-latest
|
||||
|
||||
print-version:
|
||||
@echo "Building $(ORG)/restic:$(VERSION) for $(PLATFORMS)"
|
||||
|
||||
build-version:
|
||||
docker buildx build --push --platform $(PLATFORMS) --tag $(ORG)/restic:$(VERSION) .
|
||||
|
||||
build-latest:
|
||||
docker buildx build --push --platform $(PLATFORMS) --tag $(ORG)/restic:latest .
|
||||
Reference in New Issue
Block a user