Ana içeriğe atla

Windows'ta Django projesini kullanıcı girişi yapmadan Docker ile ayağa kaldırma

Öncelikle bu yazıyı tamamen kendi çalışma ortamımı baz alarak yazdığımı söylemek isterim. Yazıdaki talimatları uygulayarak bir sonuca varamayabilirsiniz ama ben daha sonraki aşamalarda ne yapmam gerektiğini ve hangi sırayla yapmam gerektiğini unutmamak için buraya yazıyorum. Belki daha sonra daha da detaylandırabilirim. Yararlandığım kaynakları da aşağıya ekleyeceğim. Direkt onlara da bakabilirsiniz.


Yaptığım şeylerin çalıştığını hızlıca görebilmek adına basit bir Django projesi oluşturdum. Hiç bir model vs oluşturmadım. Her şeyiyle çalışan bir web uygulaması. Bu web uygulamamı, Windows'ta oturum açmadan ayağa kaldırmak istiyorum. Çünkü yerelde bir sunucum var ve elektrikler gittikten sonra bile, eğer eletkrikler tekrar gelirse kendini yeniden başlatacak şekilde ayarladım. Ama tekrar arayüze girip kullanıcı şifresini yazmak (şifresiz yapmak da bir çözüm ama güvenlik malum) yorucu. O halde ben giriş yapmadan arkaplanda Django uygulamam ayağa kalksın istedim.

 

Bunun için çeşitli yöntemler olabilir mesela IIS server kurup gerekli ayarlamaları yaparak Windows servisleri yardımıyla ayağa kaldırabileceğimize dair bir kaç yazıya denk geldim. Ama ben Docker dünyasına giriş yapmak istediğim Docker yolundan gittim. Docker'i indirirken Windows sürümü ve derleme sürümü önemli. Çünkü WSL desteğine göre uygun Docker sürümünü indirmek lazım. Doğru Docker sürümünü nasıl seçeceğim derseniz şuradan yardım alabilirsiniz. Bende WSL 2 var. O yüzden hiç bir engele takılmadan son sürümü indirdim.

 

Docker Desktop indirdikten sonra bir şey yapmaya gerek yok. Düz bir yönetim konsolu. Şimdi asıl olay Django projemizin ana klasöründe oluşturacağımız dosyalar. Bir projeyi Docker'a taşımak için 2 tane dosya gerekiyor. Birincisi Dockerfile, diğeri de docker-compose.yaml.

 

Dockerfile içeriğini oluşturmak adına şu kaynağı kullandım. Tabii kendime göre uyarlayarak. Dockerfile:


 docker-compose.yml

 

Gerekli dosyaları oluşturduktan sonra proje ana dizinine ekliyoruz. Sonrasında, proje ana dizinine CMD ile geçiş yaparak "docker compose up" komutunu verdiğinizde proje Docker'a aktarılacak ve ayağa kaldırılacaktır. Çalıştıktan sonra Docker Desktop üzerinde Docker Images ve Docker Container altında servisleri görebiliriz. İstersek durdurabilir veya yeniden başlatabiliriz. 

 

Windows işletim sisteminde, sisteme giriş yapmadan Docker Desktop'un çalışmasını sağlamak için de şuradan yararlandım.  Artık bilgisayarın açma kapama düğmesine bastığımda Docker sayesinde Django web uygulamam ayağa kalkıyor ve belirlediğim porttan yayın yapmaya başlıyor.


Burada yaptığımız şey tamamen basit bir işlem. Yani bunu kullanarak profesyonel bir ortamda projeleri ayağa kaldıramazsınız çünkü bir sürü eksiği var. Öncelikle Django projesinde default server kullanılıyor. Burada bir server arkasına yerleştirmek gerekecektir. Sonrasında environment  bilgileri de eklenmesi gerekiyor çünkü secret key gibi bilgilerin dosyada saklanması doğru değil. Aklıma gelmeyen diğer bir kaç sebep nedeniyle buradaki talimatları sadece evde, lokal ağda denemenizi tavsiye ederim :d


Yorumlar

Bu blogdaki popüler yayınlar

Python Subprocess

subprocess modülü, yeni bir process oluşturmayı sağlayan, bunların girdi-çıktılarını ele alma imkânı veren ve dönüş kodlarını almayı sağlayan bir modüldür. Yani daha basit bir şekilde, program içinde program çalıştırmaya imkan veren bir modüldür. Subprocess Modülünün Kullanımı subprocess basit bazı process'leri kullanmak için birkaç tane fonksiyon sunuyor. Daha karmaşık bir process çalıştırmak isterseniz, Popen sınıfını kullanabilirsiniz. Bunlara detaylı bir şekilde değinmeye çalışacağız. Şimdi basit fonksiyonları inceleyelim

CLAHE (Contrast Limited Adaptive Histogram Equalization) Histogram Eşitleme Tekniği

Bu yazıda CLAHE algoritmasını nasıl uygulayacağımızı ve verilen bir resmi histogram eşitlemesi için nasıl işleyeceğimizi öğreneceğiz. Bu yazıda, CLAHE algoritmasının, görüntü iyileştirme için nasıl uygulandığını göreceğiz. CLAHE, görüntü kontrast değerlerinin aşırı yüksekliği ile ilgilenen AHE algoritmasının bir varyantıdır. CLAHE, bütün resim üzerinde işlem yapmak yerine kesitler olarak adlandırılan küçük bölgeler üzerinde işlem yapar. Küçük kesitlerde yapılan işlem sonrasında oluşan yapay sınırları kaldırmak için bilinear interpolasyon işlemi uygulanarak bu küçük kesitler birleştirilerek son görüntü elde edilir.  Bu algoritma görüntü kontrastını iyileştirmek için kullanılabilir. CLAHE algoritmasını renkli görüntülere de uygulayabiliriz. Genelde HSV görüntülerin yalnızca parlaklık kanalına uygulandığı durumlarda, tüm RGB kanallara uygulamaktan çok daha başarılı sonuçlar elde etmemizi sağlar.  CLAHE algoritması uygulanırken 2 parametre önemlidir. Birincisi clipLimit parametres...

Java Process Çıktısı Türkçe Karakter Sorunu

Merhaba arkadaşlar. Bildiğiniz gibi Java'da bir process oluşturmak için ProcessBuilder sınıfından yararlanıyoruz. Oluşturduğumuz process eğer çıktı üretiyorsa bu çıktıyı okuyabiliyoruz. Ancak bu çıktı Türkçe karakter içeriyorsa, biz bu çıktıyı okuduğumuz zaman düzgün bir şekilde elde edemiyoruz. Daha doğrusu kodlama Türkçe'ye göre yapılmadığı için (ş,ç,ğ,ı,ü,ö) karakterleri farklı bir şekilde ekranda görüntüleniyor. Öncelikle sorunu gözle görelim ve bunu çözmeye çalışalım. Aşağıda ping atmak üzere yazdığım bir program var. Ping atabilmek için bir process oluşturuyorum ve çıktıları ekrana yazıyorum. İşletim sistemimi Türkçe kullandığım için çıktı da Türkçe ifadeler geçiyor.