Golang Projesini Docker Konteynerı Haline Getirme
Merhaba arkadaşlar bu yazımızda basit bir golang web server oluşturup bunu nasıl docker konteynırı haline getirebiliriz bunu öğrenceğiz. Keyifli okumalar dilerim.
Öncelikle main.go adında bir golang projesi oluşturalım ve net/http paketinden bir web server oluşturalım. Ve içerisine iki tane route koyalım. ListenAndServe diyerek yazdığımız kodu bir portta ayağa kaldıralım.
go run main.go diyerek kodumuzu ayağa kaldıralım. tarayıcımızda http://localhost:8081/hi adresine gittiğimizde ekranda “Hi” yazısını görüyor olacaksınız. Tebrikler artık çalışan bir web serverınız var ve bunu Golang dilinde yazmak sadece bu kadar.
Şimdi oluşturduğumuz main.go dizinin içerisinde bir tane Dockerfile isminde bir dosya oluşturalım.
Docker’ın çalışma mantığı sizin bir yerden image çekmeniz gerekiyor (kodunuzda gerekli olan image (İmage = golang bizim projemizde)) bunu docker kendi üzerine indirerek kurulum yapıyor ve bu image sayesinde bizim kodumuzu kendi üzerinde çalıştırabiliyor.
FROM golang:1.12.0-alpine3.9 Docker Hub üzerinden docker image’sini çekecek ve kodumuzun çalışmasını sağlayacak.
RUN mkdir /app diyerek indirilen image dosyasının içerisinde bir tane app adında klasör oluşturacak.
ADD . /app dosyanın içerisinde ne var ise image’ın içerisine almış olacak. Bizim main dosyamız da oraya gidecek.
WORKDIR /app bu dizinin çalışma dizini olduğunu gösteriyor. Ve Docker bunun üzerinde çalışacağımızı anlıyor.
RUN go build -o main . dizindeki main dosyamızın build edilmesini sağlıyor. Bu sayede main.go dosyamızı yürütülebilir bir dosya oluşturacak.
CMD [“/app/main”] ve son olarak edindiğimiz build dosyasını çalıştırmayı sağlayan satır.
Evet bir Dockerfile dosyasını oluşturduk şimdi ise bu dosyayı docker konteynırı haline getirmede.
Projemizi oluşturduğumuz dizine gidiyoruz ve alttaki docker kodunu çalıştırarak dosyamızı konteynır haline getiriyoruz.
docker build -t docker-test .
docker images dediğimizde bizim image dosyamızın orda olduğunu görebilirsiniz.
Gördüğünüz gibi dosyamız artık bir image halinde ve çalıştırabilinir. Çalıştırıp nasıl durduğunu görelim. Bunun için terminale alttaki kodu yapıştıralım.
docker run -p 8080:8081 -it docker-test
İşte bu kadar. Doker dosyamız gayet düzgün bir şekilde çalışıyor. Umarım eğlenceli ve eğitici bir yazı olmuştur. Diğer yazılarımı da kontrol etmeyi unutmayınız. Sağlıcakla kalın.