Heroku'da Go Uygulaması Yayınlama
Öncelikle Bilmeyenler İçin Heroku Nedir?
Kısaca Heroku, JavaScript, Go, Ruby, Python, Scala, PHP, Java, Clojure ile geliştirdiğimiz sunucu uygulamalarını ücretsiz barındırabileceğimiz bir platformdur.
Aşağıdaki bağlantıdaki blog yazısını okumanızı tavsiye ederim.
Projemizi Planlayalım
Bu örneğimizde bir web sunucu oluşturacağız. Öncelikle Go modules
kullanacağımız için projemizi kullanıcının go dizinine oluştumalıyız.
Komut satırını açalım ve aşağıdaki komutu yazarak bahsettiğimiz dizine geçelim.
Windows'ta:
cd C:\\Users\%username%\go\src
GNU/Linux ve MacOS'te:
cd ~/go/src
Bu konuma proje dizinimizi oluşturalım
mkdir heroku-app
heroku-app
klasörü projemizin ana dizini olacak. Aşağıdaki komut ile proje ana dizinimize girelim.
cd heroku-app
Daha sonra bu dizini code .
komutu ile VSCode üzerinde açalım.
main.go
dosyamızı oluşturalım ve aşağıdaki gibi olsun.
Yukarıda normal web sunucu oluşturma kodlarından biraz farklı işlemler var. Bunları açıklamak gerekir ise:
port
değişkenimiz sistemden string
tipinde PORT
ortam değişkenini alıyor. Yani port
değişkeni sunucumuzun hangi portta çalışacağını belirliyor. Uygulamamızı Heroku'ya yükledikten sonra sistemimiz Heroku olduğu için port ortam değişkenini Heroku'dan almış olacağız. Sunucunun çalışacağı portu Heroku belirlediği için portu kendimiz kodlar içinde belirleyemiyoruz.
http.ListenAndServe()
fonksiyonuna da parametre olarak ":"+port
vererek devam ediyoruz.
Sunucumuzun ana dizinini yakalacak olan anaSayfa fonksiyonumuza bakalım.
Yine burada sistemden portu istedik. Hemen aşağısında "Merhaba Dünya!" ve kullanılan portun çıktısını vermesini sağladık. Kodlarımız artık hazır.
Bu projemizde dışarıdan bir pakete ihtiyacımız olmadı. Hepsi Go'nun hazır paketlerinden. Eğer dışarıdan paketler olsa ne yapacaktık? Hadi hemen görelim.
Komut satırına go modules için aşağıdaki komutu yazalım.
go mod init
Eğer projenizi go/src klasörü içinde oluşturmazsanız bu komut hata verecektir.
Böylece go.mod dosyamızı oluşturduk. Dışarıdan paket bağımlılıklarını yüklemek için aşağıdaki komutu yazalım.
go mod vendor
Bu komutu yazdığınızda paket bağımlılığınız yoksa aşağıdaki gibi bir çıktı alacaksınız.
Eğer paket bağımlılığınız varsa projenizin ana dizininde vendor adında bir klasör oluşacak ve bu klasörün içinde dış paketlerin kaynak kodları bulunanacak.
Versiyon sistemli hale getirelim
Heroku platformu versiyon kontrol sistemi ile çalıştığı için, öncelikle git projemizi oluşturalım. Projemizin ana dizinindeyken komut satırına:
git init
Daha sonra oluşturduğumuz projeyi staging'e almak için:
git add .
yazalım. Commit oluşturmak için ise:
git commit -m "Heroku uygulamamı oluşturdum."
Heroku'da Yayınlama
Öncelikle Heroku'nun komut satırı uygulamasını bilgisayarımıza kuralım.
Windows, MacOS ve Ubuntu için bu adresten kurabilirsiniz.
Arch Linux ve türevleri için kolaylık açısından AUR üzerinden heroku-cli-bin
aratarak kurabilirsiniz.
Uygulamayı kurduktan sonra Heroku Hesabımıza bağlayalım.
Komut satırına aşağıdakileri yazalım.
heroku login
Şöyle bir çıktı verecek:
q tuşuna basınca giriş yapmayı iptal eder. O yüzden giriş yapmak için herhangi bir tuşa başabilirsiniz. (Lütfen bilgisayarınızın güç tuşuna basmayın 🙂)
Daha sonra varsayılan tarayıcınız üzerinden giriş yapma sayfası açılacak. Heroku hesabınıza girdikdek sonra tarayıcınızda girişin başarılı olduğunu söylecek.
Komut satırında da aşağıdaki gibi bir çıktı göreceksiniz. Kendi bilgilerim olduğu için birazını sansürledim.
Böylece başarıyla giriş yapmış olduk.
Heroku projemizi oluşturalım.
heroku create
Şöyle bir çıktı alacağız.
Yazdığımız kodları Heroku uygulamamıza yükleyelim.
git push heroku master
Bu komut sonrasında aşağıdakine benzer bir sonuç almanız gerekir.
Yukarıdaki çıktıya göre aşağıdaki işaretlediğim yerde uygulamamızın adresi olacak.
Bu adres tabiki de sizde farlı olacak. Buradan girip uygulamanızı kontrol edebilirsiniz. Benim sonucum ise şu şekilde:
Last updated