GoLang ve Docker


(◊◊◊◊) #1

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.


(system) #2