FROM golang:1.25-alpine AS builder # Install git and required dependencies RUN apk add --no-cache git build-base # Set working directory WORKDIR /app # Copy go mod and sum files COPY go.mod go.sum ./ # Download all dependencies RUN go mod download # Copy the source code COPY . . # Build the application with optimizations RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags="-s -w" -o tercul ./cmd/cli # Use a small alpine image for the final container FROM alpine:latest # Add ca-certificates for secure connections RUN apk --no-cache add ca-certificates tzdata # Set working directory WORKDIR /root/ # Copy the binary from builder COPY --from=builder /app/tercul . # Expose the application port EXPOSE 8080 # Command to run the API server CMD ["./tercul", "serve"]