Pardus altında go ile programlama yaparken bir noktada Docker teknolojisini kullanmak durumunda kaldım. Bu yazımda sizlere Pardus altında Docker ile nasıl go programlama dili ile çalışabileceğinizi anlatmaya çalıştım. Umarım faydalı olur.
Öncelikle GOPATH’inizi ayarladığınızı varsayıyorum. Örnek olarak projemin çalışma dizini şu şekildedir.
/home/tesla/go/src/github.com/mehmetnuri/myProject
main.go içeriğim ise şu şekildedir.
package main
import (
"fmt"
"github.com/julienschmidt/httprouter"
"net/http"
)
func indexHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
fmt.Fprintf(w, "Pardus docker deneme uygulaması")
}
func main() {
router := httprouter.New()
router.GET("/", indexHandler)
http.ListenAndServe(":8080", router)
}
Örnek projemizde üçüncü parti kütüphanesi olarak httprouter kütüphanesini kullandım.
Docker imajı oluşturmak için Dockerfile içeriğim şu şekilde.
FROM golang
RUN mkdir -p /go/src/github.com/mehmetnuri/myProject
WORKDIR /go/src/github.com/mehmetnuri/myProject
COPY . /go/src/github.com/mehmetnuri/myProject
RUN go get github.com/julienschmidt/httprouter
ENV PORT 8080
EXPOSE 8080
CMD go run main.go
Dockerfile dosyamız ile projemizin aynı dizinde olduğundan emin olduktan sonra uç birim aracılığı ile projemizin bulunduğu dizine girip şu komutları veriyoruz.
docker build --rm -t example-app .
Bu komuttan sonra example-app adında bir imajımız oluşacaktır.
Daha sonra container oluşturmak ve çalıştırmak için şu komutu veriyoruz.
docker run -p 8080:8080 --name="test" -d example-app
Bu komuttan sonra da test adında bir containerimiz oluşmakta ve çalışmaktadır. İnternet tarayıcımızı açıp localhost:8080 adresine gittiğimizde aşağıdaki çıktıyı görmekteyiz.
Docker ile ilgili Türkçe daha fazla bilgi için Gökhan Şengün’ün şu linkinden daha fazla bilgi edinebilirsiniz.