30.08.2024
5
Like
72
Views
Burada daha önce yazdığım Medium makalemin Türkçesini yazıyorum: https://medium.com/@ozgurpeynirci/deploy-docker-container-for-free-on-oracle-cloud-4363ac79524b
Bu makaleyi uygulamadan önce yükleyeceğiniz uygulamayı (site, API vb.) kendi bilgisayarınızda Docker'a uygun hale getirmelisiniz ve çalıştığından emin olmalısınız.
Genelde, küçük uygulamalarımızı başkalarına göstermek isteriz, ancak başkalarına kendi makinelerinde nasıl yapılandıracaklarını ve çalıştıracaklarını açıklama zahmetine girmeden, ya da Ücretsiz(!) bir bulut hizmeti almanın ve bu hizmetin aniden Ücretsiz™ katmanını aşma riskine girmeden bunu yapmak isteriz.
Oracle, küçük bir uygulama dağıtmak için gereksiz risklerle uğraşmanıza gerek kalmadan kullanabileceğiniz Always Free(Daima Ücretsiz) seçeneği sunuyor.
Oracle, sağladığınız ödeme yönteminin sahipliğini doğrulamaya çalışacak, ancak burada kullanacağınız Always Free ürünleri için sizden ücret almayacak.
Tarayıcınız Chrome/Safari/Firefox/Edge dörtlüsünden birisi olsun yoksa Oracle hata verecektir.
250£ ücretsiz krediyle başlıyoruz ancak sıradışı bir şey yapmadığınız sürece bunu tüketmek imkansız. Ayrıca, kredi tükenirse bile sizden ücret alınmaz. (Eğer tüketmeyi başarabilirseniz!)
cloud.oracle.com ana ekranında sol üst köşeye tıklayın ve Compute > Instances seçeneğine gidin.
Create Instance düğmesine tıklayın.
Edit düğmesine tıklayın, çünkü işletim sistemini başka bir Always Free seçeneği olan Ubuntu ile değiştirmek istiyoruz.Change Image düğmesine tıklayın.
Ubuntu seçin.
Bir sürüm seçin, hangisinin olduğu önemli değil.
Son olarak, Select Image düğmesine tıklayın.
Aşağı kaydırın ve Add SSH keys bölümünü göreceksiniz, burada Save private key düğmesine tıklayarak özel anahtarı indirmeniz gerekiyor.
Son olarak, ekranın sol alt köşesindeki Create düğmesine tıklayın.
Artık sanal makinemiz var, bu VM'ye tıklayın ve Instance Details sayfasını bulun. Burada genel IP adresinizi göreceksiniz. Ayrıca Virtual Cloud Network: xxx bölümünü de göreceksiniz. O bağlantıya tıklayın.
Sonraki sayfada subnet (alt ağ bağlantısına) tıklayın.
Bir sonraki sayfada güvenlik listesi bağlantısına tıklayın.
Add Ingress Rules düğmesine tıklayın, Source CIDR alanına 0.0.0.0/0 yazın.
Kamu erişimi için hangi portların izinli olduğunu belirlemek isteyebilirsiniz, bunu Destination Port Range alanına yazabilirsiniz. Aksi takdirde bu alanı boş bırakabilir ve sayfanın altındaki Add Ingress Rules düğmesine tıklayabilirsiniz.
Bulut sunucularına bağlanmak için şifreler yerine SSH anahtarları kullanıyoruz. Bu daha güvenlidir. PuTTY'yi indirin. PuTTY'nin kurulumuyla birlikte gelmiş olması gereken PuTTYgen'i çalıştırın (arama çubuğu veya Başlat Menüsü aracılığıyla erişebilirsiniz).
Load düğmesine tıklayın.
Bu kısmı All Files (.) olarak değiştirin.
Instance oluşturduğumuzda indirdiğimiz .key dosyasını seçin. Seçtiğiniz bir anahtar şifresi girin (bu, esasen sizin şifreniz olacak) ve PuTTYgen üzerinde Save private key düğmesine tıklayın. Bu, uzantısı *.ppk olan bir dosya oluşturacaktır.
Windows'ta WinSCP'ye ihtiyacınız var. macOS'ta FileZilla'yı tercih edebilirsiniz. Linux kullanıcısıysanız zaten bu kısmı çoktan halletmişsinizdir. :)
Burada Windows kullanıcıları için WinSCP ile devam ediyorum.
Sanal makinenizin genel IP adresini host name olarak buraya girin. Bu IP adresi, Oracle Cloud'daki Instance Details sayfasındadır. Kullanıcı adı ubuntu olmalı. Şimdi Login düğmesine tıklamayın, bunun yerine Advanced... düğmesine tıklayın.
SSH altındaki Authentication bölümünü sol taraftan seçin, ... düğmesine tıklayın ve önceden oluşturduğumuz *.ppk dosyasını seçin.
*.ppk dosyasını, .key dosyasını değil, seçin.
Tamam'a tıklayın ve şimdi Login düğmesine tıklayın.
Sol taraf sizin bilgisayarınız, sağ taraf ise sunucu. İstediğiniz dosyayı sadece sürükleyip bırakabilirsiniz. Ancak kök dizine dosya gönderemezsiniz, onları /home/ubuntu gibi bir yere gönderin.
NOT: Klasörleri göndermek çok fazla zaman alır, bu yüzden ya klasörlerinizi sıkıştırın (zip gibi) ya da klasörsüz dosyalar gönderin.
WinSCP'de yaptığımız gibi aynı host name'i girin.
Sol taraftaki Credentials bölümüne tıklayın ve WinSCP için kullandığımız aynı *.ppk dosyasını kullanmak için ilk Browse... düğmesine tıklayın.
WinSCP kullanarak yüklediğiniz klasörün bulunduğu yere gitmek için cd komutunu kullanın. Bir zip dosyası yüklediyseniz, şu komutu girin: sudo apt-get install unzip ve ardından unzip filename.zip komutunu girin.
Şimdi docker-compose.yml dosyamızın bulunduğu klasöre girin.
Öncelikle bu dosyayı çalıştırmak için docker ve docker compose'u kurmamız gerekiyor.
1. ve 2. adımlardaki komutları buradan kopyalayıp yapıştırın: https://docs.docker.com/engine/install/ubuntu/
Docker Compose için:
sudo apt-get install docker-compose-plugin
Artık docker-compose.yml dosyamızı nihayet çalıştırabiliriz.
sudo docker-compose build
sudo docker-compose up
Instance'ımızın genel IP adresini ve uygulamamızın kullandığı portu girin. React uygulamamı 3000 yerine 80 portunu kullanacak şekilde yapılandırdım.
Burada örnek bir React + Node.js kullanarak yaptığım website metadatası çeken bir websitemi yükledim: http://158.180.229.76:80/
Sitenin kaynak kodları: https://github.com/Zahkklm/metadata-viewer
Teşekkürler.
You need to log in to be able to comment!