Sebagai contoh kita akan membuat script Golang sederhana yang berjalan di port 8000, bila diakses akan menampilkan hostname dari dari container yang menjalankannya. Buat folder baru dengan nama aplikasi-golang, buat file baru web-server.go
, copy paste script dibawah ini
package main import ( "fmt" "net/http" "os" ) func home(w http.ResponseWriter, req *http.Request) { hostname, err := os.Hostname() if err != nil { panic(err) } fmt.Fprintf(w, "Hostname: %s", hostname) } func main() { http.HandleFunc("/", home) http.ListenAndServe(":8000", nil) }
Build aplikasi
go build web-server.go
coba jalankan
./web-server
test dengan curl
curl localhost:8000
Buat Dockerfile
Untuk membuat docker image, buat Dockerfile yang berisi
FROM golang:1.16 RUN mkdir /app COPY $PWD /app WORKDIR /app RUN go build web-server.go CMD ["/app/web-server"]
build aplikasi golang di docker dengan
docker build . -t golangapp
jalankan docker yang baru dibuat
docker run -p 8000:8000 golangapp
-p 8000:8000, digunakan untuk binding port 8000 dari docker ke localhost. Bila port 8000 telah digunakan ganti dengan port lainnya, misalkan 8200 (-p 8200:8000), akses dengan curl
curl localhost:8000
Setelah ini aplikasi bisa di deploy ke Kubernetes, AWS ECS atau apapun service yang anda gunakan.