# Build stage
FROM golang:1.22-alpine AS builder

WORKDIR /app

# Copy and download dependencies
COPY go.mod go.sum ./
RUN go mod download

# Copy the source code
COPY . .

# Install required packages for cgo
RUN apk add --no-cache gcc musl-dev

# Build with cgo enabled
ENV CGO_ENABLED=1

# Build the Go application
RUN go build -o app .

# Runtime stage
FROM alpine:latest

WORKDIR /root/

# Install SQLite CLI for runtime
RUN apk add --no-cache sqlite

# Copy the binary from the builder stage
COPY --from=builder /app/app .
COPY --from=builder /app/static/index.html.tmpl ./static/index.html.tmpl
COPY --from=builder /app/static/result.html.tmpl ./static/result.html.tmpl

# Expose the port the app runs on
EXPOSE 8080

# Run the application
CMD ["./app"]

