paint-brush
Django Uygulamalarını Dockerize Etme ve Dağıtmaile@abrahamdahunsi
9,858 okumalar
9,858 okumalar

Django Uygulamalarını Dockerize Etme ve Dağıtma

ile Abraham Dahunsi 15m2023/10/14
Read on Terminal Reader

Çok uzun; Okumak

Bu eğitimde Docker, Django ve Heroku'yu kullanarak Django uygulamalarını nasıl dockerize edeceğinizi ve dağıtacağınızı öğrendiniz. Docker'ın uygulamalarınız için yalıtılmış ve tekrarlanabilir ortamlar oluşturmanıza nasıl yardımcı olabileceğini ve Heroku'nun dağıtım sürecini nasıl basitleştirebileceğini gördünüz. Ayrıca birden fazla kapsayıcıyı ve hizmeti yönetmek için Docker Compose'u nasıl kullanacağınızı ve Django ayarlarınızı farklı ortamlar için nasıl yapılandıracağınızı da öğrendiniz.
featured image - Django Uygulamalarını Dockerize Etme ve Dağıtma
Abraham Dahunsi  HackerNoon profile picture
0-item
1-item

Docker, uygulamaları oluşturmaya, çalıştırmaya ve dağıtmaya yönelik bir platformdur. Uygulamanızı ve tüm bağımlılıklarını tek bir kapsayıcıda paketlemenize olanak tanır; bu daha sonra Docker'ın kurulu olduğu herhangi bir makinede çalıştırılabilir.


Bu, herhangi bir uyumluluk sorunu hakkında endişelenmenize gerek kalmadan uygulamanızı bir ortamdan diğerine taşımayı kolaylaştırdığından Docker'ı web uygulamalarının dağıtımı için ideal kılar.


Django ise güçlü ve ölçeklenebilir web uygulamaları oluşturmayı kolaylaştıran bir Python web çerçevesidir. Django, kullanıcı kimlik doğrulama sistemi, veritabanı soyutlama katmanı ve şablon motoru gibi kullanıma hazır bir dizi özellik sunar.


Bu, Django'ya başlamayı ve karmaşık web uygulamalarını hızlı ve kolay bir şekilde oluşturmayı kolaylaştırır.


Bir Django uygulamasını Dockerize etmek ve dağıtmak nispeten basit bir işlemdir. İlgili ana adımlar şunlardır:


1. Django uygulamanız için bir Docker dosyası oluşturun.

2. Docker dosyanızdan bir Docker görüntüsü oluşturun.

3. Docker görüntüsünü bir üretim ortamına dağıtın.


Bu makalede, bir Django uygulamasını dockerize etme ve dağıtmayla ilgili adımları ayrıntılı olarak anlatacağım. Ayrıca üretimde Django uygulamalarını dağıtmak için bazı ipuçları ve en iyi uygulamaları da sunacağım.

Önkoşullar

Bu öğreticiyi takip etmek için aşağıdaki önkoşullara ihtiyacınız olacak:


  • Python 3.9 veya üstü
  • pip
  • Liman işçisi
  • Docker Oluşturma
  • Git


Django uygulamanızı üretime dağıtmak istiyorsanız AWS, Azure veya Google Cloud Platform gibi bir bulut barındırma sağlayıcısına da ihtiyacınız olacaktır. Ancak bu eğitim için Heroku'yu kullanacağım.


Tüm önkoşulları yükledikten sonra Dockerizasyona başlamaya ve Django uygulamanızı dağıtmaya hazırsınız!

Django Projesi Oluşturma

Yeni bir Django projesi başlatmak için django-admin komutunu kullanmanız gerekir. Bu komut, Django uygulamanız için bir proje dizini ve bazı temel dosyalar oluşturmanıza olanak sağlar. Örneğin my_project adında bir proje oluşturmak istiyorsanız terminalinizde şu komutu çalıştırabilirsiniz:


django-admin startproject my_project


Bu, aşağıdaki yapıya sahip "my_project" adında bir dizin yaratacaktır:



Projem/


├── Manage.py


└── proje/


├── içinde .py


├── settings.py


└── urls.py


manage.py dosyası, projeniz için geliştirme sunucusunu çalıştırma, veritabanı geçişleri oluşturma ve kodunuzu test etme gibi çeşitli görevleri gerçekleştirmenize olanak tanıyan bir komut dosyasıdır. project/ dizini projeniz için ayarları ve yapılandırma dosyalarını içerir.


settings.py dosyası, projenizin veritabanı bağlantısı, yüklü uygulamalar ve ara katman yazılımı gibi ana ayarlarını tanımlar. urls.py dosyası, projenizin URL'lerini uygulamalarınızın görünümleriyle eşler.


Yeni bir Django projesi oluşturduktan sonra geliştirme sunucusunu çalıştırarak bunu yerel olarak test edebilirsiniz. Geliştirme sunucusu, makinenizde çalışan ve proje dosyalarınızı sunan basit bir web sunucusudur. Geliştirme sunucusunu başlatmak için terminalinizde şu komutu çalıştırın:


python manage.py runserver


Bu, sunucuyu varsayılan olarak 8000 numaralı bağlantı noktasında başlatacaktır. Daha sonra tarayıcınızı açabilir ve varsayılan Django ana sayfasını görmek için http://localhost:8000/ adresine gidebilirsiniz.

Bir Django Projesinin Temel Yapısı ve Dosyaları

Bir Django projesi, web uygulamanızın işlevselliğini ve görünümünü tanımlayan çeşitli dosya ve dizinlerden oluşur. Bir Django projesinin ana bileşenleri şunlardır:


manage.py : Projenizi yönetmek için uygulama oluşturma, veritabanını taşıma ve kodunuzu test etme gibi çeşitli komutlar sağlayan bir komut dosyasıdır.


project/ : Projeniz için ayarları ve yapılandırma dosyalarını içeren bir dizin. Bu dizindeki ana dosyalar şunlardır:

 `settings.py`: A file that defines the main settings for your project, such as the database connection, the installed apps, and the middleware. You can customize this file to suit your needs and preferences. `urls.py`: A file that maps the URLs of your project to the views of your apps. You can define different URL patterns for different parts of your web application.


apps/ : Projenizi oluşturan tüm Django uygulamalarını içeren bir dizin. Her Django uygulaması, web uygulamanız için belirli bir işlevsellik veya özellik sağlayan ayrı bir Python paketidir. Kendi uygulamalarınızı oluşturabilir veya üçüncü taraf kaynaklardaki mevcut uygulamaları kullanabilirsiniz.

Projeyi Yerel Olarak Test Etme

Projeyi yerel olarak test etmek için geliştirme sunucusunu veya Django tarafından sağlanan test çerçevesini kullanabilirsiniz. Geliştirme sunucusu, makinenizde çalışan ve proje dosyalarınızı sunan basit bir web sunucusudur. Test çerçevesi, kodunuz için birim testleri yazmanıza ve çalıştırmanıza olanak tanıyan bir araçtır.


Geliştirme sunucusunu kullanmak için terminalinizde şu komutu çalıştırabilirsiniz:


python manage.py runserver


Bu, sunucuyu varsayılan olarak 8000 numaralı bağlantı noktasında başlatacaktır. Daha sonra tarayıcınızı açabilir ve varsayılan Django ana sayfasını görmek için 'http://localhost:8000/' adresine gidebilirsiniz.


Test çerçevesini kullanmak için bu komutu terminalinizde çalıştırabilirsiniz:


python manage.py test


Bu, projeniz için tüm birim testlerini çalıştıracaktır. Testlerin tümü başarılı olursa şuna benzer bir mesaj göreceksiniz:



 Ran 1 test in 0.001s Ok


Testlerden herhangi biri başarısız olursa, başarısızlıkla ilgili ayrıntıların yer aldığı bir hata mesajı göreceksiniz. Kodunuzda hata ayıklamak ve düzeltmek için bu bilgileri kullanabilirsiniz.


Projeyi yerel olarak test ettikten ve sonuçlardan memnun kaldığınızda, onu bir üretim ortamına dağıtabilirsiniz.

Django Projesinin Dockerleştirilmesi

Docker dosyası nedir?

Docker dosyası, Docker görüntüsünün nasıl oluşturulacağına ilişkin talimatları içeren bir metin dosyasıdır. Docker görüntüsü, bir uygulamayı çalıştırmak için gereken her şeyi içeren bağımsız bir yürütülebilir pakettir: kod, çalışma zamanı, sistem araçları, sistem kitaplıkları ve ayarlar.


Docker dosyası oluşturmak için temel imajı, gerekli paketleri kurmak için çalıştırılacak komutları ve uygulamayı başlatmak için çalıştırılacak komutları belirtmeniz gerekir.

Django Projesi için Örnek Dockerfile

İşte bir Django projesi için örnek bir Dockerfile:


 FROM python:3.9 #Install Django and other required packages RUN pip install django # Copy the Django project files into the image COPY ./app # Set the working directory WORKDIR /app # Start the Django development server CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]



Bu Docker dosyası Python 3.9, Django ve Django proje dosyalarını içeren bir Docker görüntüsü oluşturacaktır. Görüntü, Django geliştirme sunucusunu 8000 numaralı bağlantı noktasında başlatacak şekilde yapılandırılacaktır.

docker-compose.yml Dosyası Nedir?

docker-compose.yml dosyası, Dockerlaştırılmış bir uygulamayı oluşturan hizmetleri tanımlayan bir YAML dosyasıdır. Bir hizmet, tek bir Docker kapsayıcısı veya bir grup Docker kapsayıcısı olabilir.


Bir Django projesi için docker-compose.yml dosyası oluşturmak için web hizmetini ve veritabanı hizmetini tanımlamanız gerekir. Web hizmeti Django uygulamasını çalıştıracak ve veritabanı hizmeti Django uygulamasının kullandığı veritabanını çalıştıracaktır.

Django Projesi için örnek docker-compose.yml dosyası

İşte bir Django projesi için örnek bir docker-compose.yml dosyası:


 version: "3.9" services: web: build: ports: -"8000:8000" volumes -./:/app db: image: postgres:14.0-alpine volumes: -./postgres:/var/lib/postgresql/data



Bu docker-compose.yml dosyası iki hizmeti tanımlar: web ve db . web servisi, önceki bölümde oluşturduğumuz Docker dosyasından Docker imajını oluşturacaktır. web hizmeti ayrıca Django geliştirme sunucusuna erişebilmemiz için ana makinedeki 8000 numaralı bağlantı noktasını da açığa çıkaracaktır.


db hizmeti resmi PostgreSQL Docker görüntüsünü kullanacaktır. db hizmeti ayrıca ana makinedeki postgres dizinini konteynerin içindeki /var/lib/postgresql/data dizinine bağlayacaktır. Bu, veritabanı dosyalarının konteyner yeniden başlatmaları arasında kalıcı olmasını sağlayacaktır.

Docker Konteynerlerini Oluşturma ve Çalıştırma

Docker konteynerlerini derlemek ve çalıştırmak için aşağıdaki komutu kullanabiliriz:


docker-compose up -d


Bu komut, henüz mevcut değilse, 'web' ve 'db' hizmetleri için Docker görüntülerini oluşturacaktır. Komut daha sonra 'web' ve 'db' hizmetleri için Docker kapsayıcılarını başlatacaktır.

Dockerized Django Projesini Yerel Olarak Test Etme

Docker konteynerleri çalışmaya başladıktan sonra Dockerized Django projesini bir web tarayıcısı kullanarak yerel olarak test edebiliriz. Bir web tarayıcısı açın ve 'http://localhost:8000' adresine gidin. Artık Django geliştirme sayfasını görebilmelisiniz.


Ayrıca http://localhost:8000/admin/ adresinden Django yönetici sayfasında oturum açabilirsiniz. Kullanıcı adı ve şifre varsayılan olarak admin ve admin .

Django Projesini Dağıtma

Artık Django projenizi Git, GitHub ve Heroku'yu kullanarak bir bulut platformuna dağıtmanın zamanı geldi. Ayrıca dağıtılan web uygulamanızı bir web tarayıcısı kullanarak da test edeceksiniz.

Git Nedir ve Neden Ona İhtiyacımız Var?

Git, projenizin kaynak kodunu yönetmenize yardımcı olabilecek bir yazılım aracıdır. Kodunuzda yapılan değişiklikleri izlemenize, diğer geliştiricilerle işbirliği yapmanıza ve bir şeyler ters giderse önceki sürümlere geri dönmenize olanak tanır.


Git ayrıca kodunuzu depolayabileceğiniz ve başkalarıyla paylaşabileceğiniz GitHub gibi uzak depolara göndermenize de olanak tanır.

GitHub Deposu Nasıl Oluşturulur ve Kodumuzu GitHub'a Nasıl Gönderilir?

Zaten bir GitHub deposu oluşturduysanız lütfen aşağıdakileri dikkate almayın.


Django projeniz için bir GitHub deposu oluşturmak için şu adımları izlemeniz gerekir:


- GitHub'da ücretsiz bir hesap oluşturun


- Profil sayfanıza gidin ve Depolar'ın yanındaki Yeni düğmesine tıklayın.


- Deponuza django-docker-app gibi bir ad verin ve isteğe bağlı olarak bir açıklama ekleyin.


- Depo oluştur düğmesine tıklayın.


Artık GitHub'da boş bir depo oluşturduğunuza göre. Kodunuzu bu depoya göndermek için terminalinizde 'git' komutunu kullanmanız gerekir. Git'i yerel makinenize zaten yüklediğinizi ve Django proje klasörünüzde bir Git deposu başlattığınızı varsayıyorum. Değilse, bunu yapmak için Resmi belgeleri izleyin.


Kodunuzu GitHub'a göndermek için şu adımları uygulamanız gerekir:


- Terminaldeki Django proje klasörünüze gidin ve deponuzun mevcut durumunu görmek için git status yazın. Bunun gibi bir şey görmelisiniz:


 On branch main Your branch is up to date with 'origin/main'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt no changes added to commit (use "git add" and/or "git commit -a")


Bu, taahhüt için hazırlanmayan bazı değiştirilmiş dosyalarınız olduğu anlamına gelir. Bunları taahhüt için hazırlamak için git add komutunu kullanmanız gerekir.


- git add yazın. değiştirilen tüm dosyaları işleme koymak için hazırlamak. Alternatif olarak, aşamalandırmak istediğimiz dosya adlarını git add Dockerfile docker-compose.yml requirements.txt gibi belirtebilirsiniz.


- Depomuzun güncel durumunu görmek için git status tekrar yazın. Bunun gibi bir şey görmelisiniz:


 On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: Dockerfile modified: docker-compose.yml modified: requirements.txt


Bu, taahhüt için hazırlanmış bazı değişiklikleriniz olduğu anlamına gelir. Bunları taahhüt etmek için git commit komutunu kullanmanız gerekir.


- Aşamalı değişiklikleri ne yaptığımızı açıklayan bir mesajla birlikte uygulamak için git commit -m "Add Docker configuration files" yazın. Alternatif olarak -m işaretini atlayabilir ve git commit yazdıktan sonra açılacak düzenleyiciye daha uzun bir mesaj girebilirsiniz.


- Depomuzun son durumunu görmek için git status tekrar yazın. Bunun gibi bir şey görmelisiniz:


 On branch main Your branch is ahead of 'origin/main' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working tree clean


Bu, henüz uzak depoya aktarılmayan bir taahhüdünüz olduğu anlamına gelir. Push etmek için git push komutunu kullanmanız gerekir.


- Yerel taahhüdünüzü GitHub'daki uzak depoya göndermek için git push origin main yazın.


Alternatif olarak, göndermek istediğiniz uzak adı ve dal adını git push origin main gibi) belirtebilirsiniz.


Kimliğinizi doğrulamak için GitHub kullanıcı adınızı ve şifrenizi girmeniz veya kişisel bir erişim belirteci kullanmanız istenebilir.


- GitHub veri havuzu sayfanıza gidin ve yenileyin. Sayfada kodunuzu ve taahhüt mesajınızı görmelisiniz.


Kodunuzu başarıyla GitHub'a aktardınız. Artık bir sonraki adım olan Django projenizi Heroku'ya konuşlandırabilirsiniz.

Heroku Nedir ve Neden Buna İhtiyacınız Var?

Heroku, web uygulamalarını dağıtmanıza, yönetmenize ve ölçeklendirmenize olanak tanıyan bir bulut platformudur. Python, Django ve PostgreSQL gibi çeşitli programlama dillerini, çerçevelerini ve veritabanlarını destekler.


Ayrıca günlük kaydı, izleme, önbelleğe alma, güvenlik vb. gibi web geliştirme deneyimimizi geliştiren çeşitli özellikler ve eklentiler de sağlar.


Heroku'ya ihtiyacınız var çünkü dağıtım sürecinizi daha kolay ve hızlı hale getiriyor. Sunucular, ağlar veya işletim sistemleri gibi temel altyapı hakkında endişelenmeden Django projenizi dağıtmak için Heroku'yu kullanabilirsiniz.


Web uygulamanızı trafiğe ve talebe göre ölçeklendirmek için Heroku'yu da kullanabilirsiniz. Heroku, web dağıtımının tüm karmaşıklıklarını ve zorluklarını sizin için halleder.

Heroku Hesabı Nasıl Oluşturulur ve Heroku CLI Aracı Nasıl Kurulur?

Bir Heroku hesabı oluşturmak için şu adımları izlemeniz gerekir:


- Heroku'ya gidin ve Kayıt Ol butonuna tıklayın.

- Ad, e-posta, şifre vb. gibi gerekli bilgileri girin.

- Python gibi bir birincil geliştirme dili seçin.

- Ücretsiz Hesap Oluştur butonuna tıklayın.

- E-postamızı kontrol edin ve hesabımızı doğrulamak için bağlantıya tıklayın.


Artık ücretsiz bir Heroku hesabı oluşturdunuz. Heroku CLI aracını yüklemek için şu adımları izlemeniz gerekir:


- [ Heroku CLI ' ya gidin ve işletim sistemimiz için Windows, Mac OS X veya Linux gibi uygun yükleyiciyi seçin.


- Yükleyiciyi indirip çalıştırın ve ekrandaki talimatları izleyin.


- Bir terminal açın ve kurulumun başarılı olduğunu doğrulamak için heroku --version yazın. Bunun gibi bir şey görmelisiniz:


heroku/7.59.0 win32-x64 node-v12.21.0


Artık Heroku CLI aracını yerel makinenize yüklediniz. Terminalden Heroku ile etkileşim kurmak için bu aracı kullanabilirsiniz.

Heroku Uygulaması Nasıl Oluşturulur ve Gerekli Ayarlar Nasıl Yapılandırılır?

Django projemiz için bir Heroku uygulaması oluşturmak için şu adımları izlememiz gerekiyor:


- Terminaldeki Django proje klasörünüze gidin ve Heroku CLI aracını kullanarak Heroku hesabınızda oturum açmak için heroku login yazın. Kimliğinizi doğrulamak için e-posta adresinizi ve şifrenizi girmeniz veya bir web tarayıcısı kullanmanız istenebilir.


- heroku create django-docker-app django-docker-app yazın. Alternatif olarak, adı atlayabilir ve Heroku'nun sizin için rastgele bir ad oluşturmasına izin verebilirsiniz. Bunun gibi bir şey görmelisiniz:


 Creating ⬢ django-docker-app... done https://django-docker-app.herokuapp.com/ | https://git.heroku.com/django-docker-app.git


Bu, bir web URL'si ve Git URL'si ile yeni bir Heroku uygulaması oluşturduğunuz anlamına gelir. Web URL'si, dağıtılan web uygulamanıza erişebileceğiniz yerdir ve Git URL'si, kodunuzu Heroku'ya aktarabileceğiniz yerdir.


- Django projemizin SECRET_KEY ayarına yönelik bir ortam değişkeni ayarlamak için heroku config:set SECRET_KEY=<your_secret_key> yazın. <your_secret_key> öğesini , Django Secret Key Generator gibi bir araç kullanarak oluşturabileceğiniz rastgele bir dizeyle değiştirmeniz gerekir.


Alternatif olarak, settings.py dosyanızda bulunan mevcut gizli anahtarı da kullanabilirsiniz ancak bu, güvenlik nedeniyle önerilmez.


- Heroku uygulamanıza ücretsiz bir PostgreSQL veritabanı eklentisi eklemek için heroku addons:create heroku-postgresql:hobby-dev yazın. Bu, Django projeniz için yeni bir veritabanı oluşturacak ve Django projenizin DATABASE_URL ayarı için bir ortam değişkeni ayarlayacaktır. Bunun gibi bir şey görmelisiniz:

 Creating heroku-postgresql:hobby-dev on ⬢ django-docker-app... free Database has been created and is available ! This database is empty. If upgrading, you can transfer ! data from another database with pg:copy Created postgresql-curved-12345 as DATABASE_URL Use heroku addons:docs heroku-postgresql to view documentation


Bu, PostgreSQL-curved-12345 adında ve DATABASE_URL URL'sinde bir PostgreSQL veritabanı eklentisi eklediğiniz anlamına gelir.


- Heroku uygulamanız için ayarladığınız ortam değişkenlerinin listesini görmek için heroku config yazın. Bunun gibi bir şey görmelisiniz:


 === django-docker-app Config Vars DATABASE_URL: postgres://<username>: <password>@<host>:<port>/<database> SECRET_KEY: <your_secret_key>


Bu, Django proje ayarlarınızda kullanabileceğiniz DATABASE_URL ve SECRET_KEY adında iki ortam değişkeniniz olduğu anlamına gelir.


Artık bir Heroku uygulaması oluşturduğunuza ve Django projemiz için gerekli ayarları yapılandırdığınıza göre, bir sonraki adım olan Django projenizi Heroku'ya dağıtma aşamasına geçebilirsiniz.


Django projenizi ' heroku ' komutunu kullanarak Heroku'ya nasıl dağıtırsınız ?


heroku komutunu kullanarak Django projemizi Heroku'ya dağıtmak için şu adımları izlemeniz gerekir:


- Terminaldeki Django proje klasörünüze gidin ve Heroku CLI aracını kullanarak Heroku Container Registry'de oturum açmak için heroku container:login yazın. Bu, Docker imajımızı Heroku'ya aktarmanıza olanak tanıyacaktır.


- Docker görüntünüzü oluşturmak ve Heroku'ya göndermek için heroku container:push web -a django-docker-app yazın. Bu durumda Heroku uygulamanızın adını Django-docker-app olarak belirtmeniz gerekir. Bunun gibi bir şey görmelisiniz:


 === Building web (Dockerfile) Sending build context to Docker daemon 1.024kB Step 1/9 : FROM python:3.9-slim ---> 7f5b6ccd03e9 Step 2/9 : ENV PYTHONUNBUFFERED 1 ---> Using cache ---> 64b5d0e40a22 Step 3/9 : RUN mkdir /code ---> Using cache ---> 4d8c638f2b6c Step 4/9 : WORKDIR /code ---> Using cache ---> e69c02a028cd Step 5/9 : COPY requirements.txt /code/ ---> Using cache ---> 8f0f3e0f2d8c Step 6/9 : RUN pip install -r requirements.txt ---> Using cache ---> 0f7b497d81ed Step 7/9 : COPY . /code/ ---> Using cache ---> c0a8e9a32b16 Step 8/9 : EXPOSE 8000 ---> Using cache ---> a1d36a4a2da4 Step 9/9 : CMD ["gunicorn", "django_docker.wsgi", "--bind", "0.0.0.0:8000"] ---> Using cache ---> f7f3c0418a1d Successfully built f7f3c0418a1d Successfully tagged registry.heroku.com/django-docker-app/web:latest === Pushing web (Dockerfile) The push refers to repository [registry.heroku.com/django-docker-app/web] f7f3c0418a1d: Pushed latest: digest: sha256:6cbbf22cf6aa60e0343e6d8e7c4c2eeb2e cb8fd5e82a42dfe5f4aeeb15af89ec size: 528 Your image has been successfully pushed. You can now release it with the 'container:release' command.


Bu, Docker görüntünüzü oluşturduğunuz ve Heroku'ya aktardığınız anlamına gelir.


- Docker imajımızı Heroku uygulamamıza yayınlamak için heroku container:release web -a django-docker-app yazın. Bunun gibi bir şey görmelisiniz:


 Releasing images web to django-docker-app... done


Bu, Docker görüntünüzü Heroku uygulamanıza yayınladığınız anlamına gelir.


- Heroku uygulamanızda veritabanı geçişlerini çalıştırmak için heroku run python manage.py migrate -a django-docker-app yazın. Bu, PostgreSQL veritabanında Django projeniz için gerekli tabloları ve dizinleri oluşturacaktır. Bunun gibi bir şey görmelisiniz:


 Running python manage.py migrate on ⬢ django-docker-app... up, run.1234 (Free) Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, polls Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying polls.0001_initial... OK Applying sessions.0001_initial... OK


Bu, veritabanı geçişlerini Heroku uygulamanızda çalıştırdığınız anlamına gelir.


- Konuşlandırılmış web uygulamamızı bir web tarayıcısında açmak için heroku open -a django-docker-app yazın. Django projemizin Heroku üzerinde çalıştığını görmelisiniz.


heroku komutunu kullanarak Django projenizi Heroku'ya başarıyla dağıttınız. Artık web uygulamanızın keyfini çıkarabilir ve başkalarıyla paylaşabilirsiniz.

Çözüm

Bu eğitimde Docker, Django ve Heroku'yu kullanarak Django uygulamalarını nasıl dockerize edeceğinizi ve dağıtacağınızı öğrendiniz. Docker'ın uygulamalarınız için yalıtılmış ve tekrarlanabilir ortamlar oluşturmanıza nasıl yardımcı olabileceğini ve Heroku'nun dağıtım sürecini nasıl basitleştirebileceğini gördünüz.


Ayrıca birden fazla kapsayıcıyı ve hizmeti yönetmek için Docker Compose'u nasıl kullanacağınızı ve farklı ortamlar için Django ayarlarınızı nasıl yapılandıracağınızı da öğrendiniz.


Django uygulamalarını Dockerleştirme ve dağıtmanın aşağıdakiler gibi birçok faydası olabilir:


- Daha hızlı geliştirme ve test döngüleri

- Daha kolay işbirliği ve kod paylaşımı

- Platformlar arasında tutarlı ve güvenilir performans

- Kaynakların ölçeklenebilirliği ve esnekliği

- Bağımlılıkların güvenliği ve izolasyonu


Sonrakini Okuyun: CI/CD, hızlı ve güvenilir yazılım teslimi için gereklidir. CI/CD işlem hattınızı maksimum verimlilik sağlayacak şekilde optimize etmek için doğru araçları seçin, iş akışınızı kolaylaştırın, otomatik test ve QA kullanın, derlemeleri paralelleştirin, izleme ve geri bildirim döngülerini kullanın, güvenlik kontrolleri gerçekleştirin ve işlem hattınızı sürekli olarak iyileştirin. Devamını oku

Ayrıca Okuyun: DockerCon 2023'te Öğrendiğimiz Her Şey

Ek kaynaklar

- Docker Belgeleri : Kılavuzları, öğreticileri, referans materyallerini ve daha fazlasını bulabileceğiniz Docker'ın resmi belgeleri.


- Django Belgeleri : Konuları, nasıl yapılır kılavuzlarını, referans materyallerini ve daha fazlasını bulabileceğiniz Django'nun resmi belgeleri.