# Start from the official Golang image FROM golang:1.23-alpine AS build # Set working directory WORKDIR /app # Copy go.mod and go.sum files first for better caching COPY go.mod go.sum* ./ # Download dependencies RUN go mod download # Copy the source code COPY . . # Build the application RUN CGO_ENABLED=0 GOOS=linux go build -o main ./main.go # Create a minimal production image FROM alpine:latest # Create app directory and set permissions WORKDIR /app COPY --from=build /app/main . # Command to run the executable CMD ["./main"]