# ---- Build stage ---- FROM golang:1.25-alpine AS builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /bin/davserver ./cmd/server RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /bin/nidusctl ./tools/nidusctl # ---- Runtime stage ---- FROM alpine:3.19 RUN apk add --no-cache ca-certificates tzdata WORKDIR /app COPY --from=builder /bin/davserver /usr/local/bin/davserver COPY --from=builder /bin/nidusctl /usr/local/bin/nidusctl # Default data location VOLUME ["/app/data"] # environment variables (override as needed) ENV NIDUS_DATA_DIR=/app/data ENV NIDUS_HOST=0.0.0.0 ENV NIDUS_PORT=8080 ENV NIDUS_LOG_LEVEL=warn ENV NIDUS_LOG_FORMAT=text EXPOSE 8080 ENTRYPOINT ["davserver"]