FROM golang:1.26.1 as builder

WORKDIR /app

COPY agent/ agent/
COPY proto/ proto/
WORKDIR /app/agent
RUN --mount=type=cache,target=/go/pkg/mod \
  --mount=type=cache,target=/root/.cache/go-build \
  go mod download

COPY agent/ agent/
COPY proto/ proto/
WORKDIR /app/agent
RUN --mount=type=cache,target=/go/pkg/mod \
  --mount=type=cache,target=/root/.cache/go-build \
  go mod tidy && \
  CGO_ENABLED=0 go build -ldflags "-s -w" -o agent ./main.go

FROM debian:bookworm-slim

RUN apt-get update && apt-get install -y --no-install-recommends \
  systemd \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=builder /app/agent/agent .

CMD ["./agent"]
