Docker Tabanlı Geliştirme Ortamı: Devilbox

Devilbox nedir?

Docker üzerine inşa edilen özel bir geliştirme ortamı yığınıdır. NodeJS’den PHP’ye bir çok programlama dili için özel bir ortam sağlamasının yanı sıra, popüler yaygın kullanılan tüm veritabanlarını da desteklemektedir.

  • Projenize özgün sunucu,programlama dili parametrelerini istediğiniz sürüme göre hızlı ve pratik olarak hazırlayabilirsiniz.
  • Docker üzerinde çalıştığı için bilgisayar kaynaklarınızı sömürmez.
  • Otomatik dns yapılandırması vardır, sanal domainler üretmek kolaydır.
  • PHP için gerekli tüm modüllerin yönetimi çok kolaydır. Laravel gibi özel framework’leri rahatlıkla koşturabilirsiniz.
  • Görsel bir arayüz kullanmak isteyenlere de özel bir imkan sunar.
  • Reverse proxy imkanı sunar.
  • Custom (özelleştirilmiş) konteynır yapmamıza olanak tanır.
  • kolay biçimde ssl sertifikası üretmemizi sağlar.

Devilbox neden gerekli?

  • Birden fazla projenin geliştirilmesinde ve yönetiminde kaynak yönetimini yapılandırmak
  • Projelerin farklı gereksinimlerinin çakışmasını engellemek
  • Geliştirme ortamlarının bakım ve kontrollerini hızlandırmak

Gereksinimler

  • Git kurulumu
    • Mac OS’da homebrew kullananlar için
      brew install git
  • Docker kurulumu
  • Bilinmesi gereken komutlar 
    • Temel git komutları
    • Docker Compose komutları

Kurulumlar Sonrası Yapılması Gereken İşlemler

Gereksinimler temin edildikten sonra repo’nun hazırlanması gerekmektedir.

    • Terminalden istediğiniz dizine repoyu klonlayın.
      git clone https://github.com/cytopia/devilbox
    • İndirme işlemi tamamlanınca Devilbox klasörüne gidin. Aşağıdaki komut ile .env dosyasını oluşturun.
      cp env-example .env
    • Daha sonra .env dosyasını açarak:
      PHP_SERVER satırını aratın ve istediğiniz php sürümünü yorum satırından çıkarın. Gerek görmediklerinizi yorum satırı olarak bırabilirsiniz.
    • Aynı şekilde veritabanı,cache’i , sunucunuzu da bu şekilde ayarlayın.
    • Eğer mac kullanıcısıysanız UID VE GID değerleri linuxdan farklı olabiliyor bunu kontrol etmek için

      id -u
      id -g

      ve komutlarıyla terminalden öğrenip .env dosyasında değiştirmeniz gerekli.

    • Eğer Laravel projesi geliştireceksiniz, çalışacağı dizin “public” olacağından Devilbox ‘ ın env dosyasında “HTTPD_DOCROOT_DIR” kısmını “public” olarak değiştirebilirsiniz.
    • Mac de performans için MOUNT_OPTIONS=,cached bu bölümü aktif hale getirin.

DevilBox’ı ayağa kaldırmak

  • Docker’ın düzgün çalıştığına emin olun. (Görev çubuğunuzdaki Docker simgesini tıklayarak “Docker desktop is runnig” olduğunu teyit edin.)
  • Terminale aşağıdaki komutu yazarak istediğiniz konteynırları ayağa kaldırın.
    docker-compose up -d php mysql
  • Çalışan konteynırları görmek için
    docker ps
  • Tarayıcınızı açıp localhost yazın, karşınıza devilbox’ ın yönetim paneli gelecektir.

 


Laravel Projesi Kurulumu

  • Devilbox standart dizini devilbox/data/www/ Eğer kendi belirlediğiniz bir dizin ile değiştirmek ve onunla devam etmek istiyorsanız aşağıdaki komutu yazabilirsiniz.
    ln -s /Users/username/Desktop/projects/Users/username/devilbox/data/www
  • Devilbox dizinine gidin. Linux ve mac kullanıcıları “shell.sh” , windows kullanıcıları ise “shell.bat” uygulamasını çalıştırarak konteynırın içine giriş yapın.
    ./shell.sh
  • Yeni bir laravel projesi oluşturun.
    laravel new example
  • devilbox panelinde virtual hosts bölümünde proje bir hata ile beraber gözükecektir. Hatanın sebebi yönlendirme ile ilgilidir. Host dosyası düzenlenerek bu problem giderebilir. Düzenlemeye başlamak için
    sudo nano /etc/hosts
  • Host dosyası düzenlemek için açıldığı zaman aşağıdaki satır ekleyip kaydedin.
    127.0.0.1 example.loc
  • Virtual hosts sekmesinde valid sütununda “ok” ifadesi yazacaktır.
  • Son olarak tarayıcıda “example.loc” adresini yazıp açtığınızda laravel projesi gelecektir.