FROM golang:1.23-alpine AS builder WORKDIR /app COPY . . # Build loadr RUN go build -o loadr # Create and build the server using a shell script RUN < server.go package main import ( "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Loadr is ready")) }) log.Printf("Server starting on :8080") if err := http.ListenAndServe(":8080", nil); err != nil { log.Fatal(err) } } EOF RUN go build -o server server.go FROM alpine:latest WORKDIR /app COPY --from=builder /app/loadr . COPY --from=builder /app/server . EXPOSE 8080 CMD ["/app/server"]