# Build stage FROM golang:1.22-alpine AS builder WORKDIR /app # Copy go mod and sum files COPY go.mod go.sum ./ RUN go mod download # Copy the source code COPY . . # Build the application RUN CGO_ENABLED=0 GOOS=linux go build -o llm-proxy ./cmd/llm-proxy # Final stage FROM alpine:latest RUN apk --no-cache add ca-certificates tzdata WORKDIR /app # Copy the binary from the builder stage COPY --from=builder /app/llm-proxy . COPY --from=builder /app/static ./static # Create data directory RUN mkdir -p /app/data # Expose port EXPOSE 8080 # Run the application CMD ["./llm-proxy"]