# Build context must be the repository root (see archive/docker-compose-*.yml). FROM golang:1.25-alpine AS build WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . RUN go build -o /webdav ./archive/cmd-webdav FROM alpine:3.21 RUN apk add --no-cache ca-certificates libcap \ && addgroup -S webdav \ && adduser -S -D -H -u 10001 -G webdav webdav \ && mkdir -p /data \ && chown -R webdav:webdav /data COPY archive/webdav/entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh COPY --from=build /webdav /webdav RUN setcap cap_net_bind_service=+ep /webdav EXPOSE 80 USER webdav ENTRYPOINT ["/entrypoint.sh"]