# Go (Golang)

> Deploy lightweight Go binaries using multi-stage builds.

- **Category**: Languages & Frameworks
- **Last Verified**: 2026-07-14

Go services compile into extremely lightweight, high-performance container layers.

## Go Multi-Stage Dockerfile

```dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
EXPOSE 8080
CMD ["./main"]
```

## Code Example

```go
package main

import (
	"fmt"
	"net/http"
	"os"
)

func main() {
	port := os.Getenv("PORT")
	if port == "" {
		port = "8080"
	}
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello, Kubeletto!")
	})
	http.ListenAndServe("0.0.0.0:"+port, nil)
}
```

