Multistage Docker build

This commit is contained in:
cimnine 2021-09-20 14:18:48 +02:00
parent 1827b16ade
commit f28c8bc1c2
3 changed files with 32 additions and 7 deletions

12
.dockerignore Normal file
View file

@ -0,0 +1,12 @@
# Folders
.git/
.github/
changelog/
doc/
docker/
helpers/
# Files
.gitignore
.golangci.yml
*.md

View file

@ -1,7 +1,18 @@
FROM alpine:latest
FROM golang:1.16-alpine AS builder
COPY restic /usr/bin
WORKDIR /go/src/github.com/restic/restic
# Caching dependencies
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go run build.go
FROM alpine:latest AS restic
RUN apk add --update --no-cache ca-certificates fuse openssh-client tzdata
COPY --from=builder /go/src/github.com/restic/restic/restic /usr/bin
ENTRYPOINT ["/usr/bin/restic"]

View file

@ -2,10 +2,12 @@
set -e
echo "Build binary using golang docker image"
docker run --rm -ti \
-v "`pwd`":/go/src/github.com/restic/restic \
-w /go/src/github.com/restic/restic golang:1.16-alpine go run build.go
export DOCKER_BUILDKIT=${DOCKER_BUILDKIT-1}
echo "Build docker image restic/restic:latest"
docker build --rm -t restic/restic:latest -f docker/Dockerfile .
docker build \
--rm \
--pull \
--file docker/Dockerfile \
--tag restic/restic:latest \
.