FROM golang:1.26-alpine AS builder

WORKDIR /app

# Copy go mod and sum files
COPY go.mod go.sum ./

# Download dependencies
RUN go mod download

# Copy source code
COPY . .

# Build statically with version
ARG APP_VERSION=dev
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s -X main.version=${APP_VERSION}" -o mdhost .

# Final scratch image
FROM scratch

# Copy binary from builder
COPY --from=builder /app/mdhost /mdhost

# Run the application - directories will be bind-mounted from host
CMD ["/mdhost"]
