# =========== 1) Build stage =========== FROM golang:1.24-alpine AS builder # Create and set working directory WORKDIR /app # Copy go.mod and go.sum first, then download dependencies COPY go.mod go.sum ./ RUN go mod download # Copy the rest of the backend code COPY . . # Build the Go binary RUN go build -o server main.go # =========== 2) Runtime stage =========== FROM alpine:3.18 WORKDIR /app # Copy the compiled binary from builder stage COPY --from=builder /app/server /app # Expose port 8180 (backend port) EXPOSE 8180 # Run the Go server CMD ["./server"]