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

aplikasi golang sederhana

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.

Leave a comment

Your email address will not be published. Required fields are marked *