Multi-arch build

This commit is contained in:
2023-04-06 12:35:29 +02:00
parent 4550e5bbae
commit 96377203b0
4 changed files with 42 additions and 3 deletions

2
.dockerignore Normal file
View File

@@ -0,0 +1,2 @@
Makefile
README.md

View File

@@ -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
View 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 .

8
README.md Normal file
View File

@@ -0,0 +1,8 @@
# Restic Docker image
Restic image for various platforms.
## Build
Just run `make` to build and push everything. Check `ORG` and `PLATFORMS`
variables to customize.