# Use the official Go image as the base image FROM golang:1.22-alpine AS builder # Set the working directory inside the container WORKDIR /app # Cache Go modules COPY go.mod ./ RUN apk add --no-cache git RUN go mod download # Copy the source code COPY . . # Build the Go binary RUN go build -o main . # ---- Runtime image ---- FROM alpine:3.19 # Install ca-certificates (if needed) RUN apk add --no-cache ca-certificates # Set workdir WORKDIR /app # Copy the binary from the builder stage COPY --from=builder /app/main . # Expose the application port (default for the Go server) EXPOSE 8080 # Command to run the binary CMD ["./main"]