FROM golang:1.26.2-alpine AS builder

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /out/xly-server ./cmd/xly-server

FROM alpine:3.21

WORKDIR /app

RUN adduser -D -H -u 10001 appuser

COPY --from=builder /out/xly-server /app/xly-server

USER appuser

EXPOSE 8181

CMD ["./xly-server"]
