FROM golang:1.23-bookworm AS builder

WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /provisioning ./cmd/provisioning

FROM debian:bookworm-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
    dnsmasq \
    openssh-client \
    ipxe \
    ca-certificates \
    dmidecode \
    curl \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /provisioning /usr/local/bin/provisioning

RUN mkdir -p /data /etc/provisioning/keys

EXPOSE 8080
VOLUME ["/data", "/etc/provisioning"]

ENTRYPOINT ["/usr/local/bin/provisioning"]
CMD ["-config", "/etc/provisioning/provisioning.yaml"]
