38 lines
1.2 KiB
Docker
38 lines
1.2 KiB
Docker
FROM docker.io/library/golang:1.24-alpine AS builder
|
|
WORKDIR /app
|
|
RUN apk add --no-cache git
|
|
RUN go install github.com/a-h/templ/cmd/templ@latest
|
|
COPY go.mod go.sum* ./
|
|
RUN go mod download
|
|
COPY . .
|
|
RUN /go/bin/templ generate
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/backea-server ./cmd/server/main.go
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/backup-performer ./cmd/backup_performer/main.go
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/list-backups ./cmd/list-backups/main.go
|
|
|
|
FROM alpine:3.20
|
|
RUN echo "@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories && \
|
|
echo "@community_edge http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
|
|
|
|
RUN apk add --no-cache \
|
|
rsync \
|
|
zip \
|
|
unzip \
|
|
borgbackup \
|
|
python3 \
|
|
py3-pip \
|
|
curl \
|
|
fuse \
|
|
openssh-client \
|
|
ca-certificates \
|
|
kopia@edge \
|
|
docker \
|
|
docker-cli-compose@community_edge
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app/backea-server .
|
|
COPY --from=builder /app/backup-performer .
|
|
COPY --from=builder /app/list-backups .
|
|
COPY --from=builder /app/templates ./templates
|
|
RUN chmod +x /app/backea-server /app/backup-performer /app/list-backups
|
|
CMD ["/app/backea-server"] |