# Step 1: Build the Go binary in a separate stage FROM golang:1.24 AS builder # Set the working directory WORKDIR /app # Copy the Go module files COPY go.mod go.sum ./ RUN go mod download # Copy the rest of the application code COPY ./src ./src # Build the Go binary with static linking for Linux RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -v -o /server ./src COPY ./views ./views COPY ./build_number ./build_number FROM scratch # Set the current working directory inside the container WORKDIR /app COPY . . COPY --from=builder server ./ # Command to run the executable CMD ["./server"] # Expose the port on which the Go server will run EXPOSE 54321