
Hər bir back-end developer karyerasının müəyyən bir dövründə XAMPP, WAMP və ya manual quraşdırılmış Linux servislərinin (Apache, PHP-FPM) əzabını dadmalıdır ki, yeniliklərin qədrini bilsin. Ənənəvi yanaşmalar bizə təməlləri öyrətdi, lakin inkişaf etmək məcburiyyətindəyik. Reallıqla üzləşək: lokal mühiti hər dəfə sıfırdan qurmaq, paketlərin versiya konfliktləri ilə əlləşmək əsl vaxt itkisidir. "Mənim kompüterimdə işləyir" bəhanəsi artıq müasir proqramlaşdırmada keçmir.
Lakin layihələr böyüdükcə, komanda daxilində işlədikcə və fərqli server mühitlərinə deploy etdikcə köhnə "local quraşdırma" üsulları ciddi başağrısı yaratmağa başlayır. "Kod mənim kompüterimdə işləyirdi, serverdə niyə çökdü?" problemi məhz buradan qaynaqlanır.
Burada səhnəyə Docker daxil olur. Sərt səslənə bilər, amma əgər bu gün hələ də layihənizin asılılıqlarını (PHP versiyası, MySQL, Redis) əməliyyat sisteminizin üzərinə birbaşa quraşdırırsınızsa, gələcək xətalar üçün zəmin yaradırsınız. Docker, proqram təminatını və onun işləməsi üçün lazım olan bütün ehtiyacları "konteyner" adlanan təcrid olunmuş, standartlaşdırılmış paketlərə yığan texnologiyadır.
Biz həmişə proqramlaşdırmada təmiz koda can atırıq. Yaxşı, bəs infrastrukturumuz niyə qarışıq olmalıdır? Docker bizə mühəndislik prinsiplərini birbaşa server/lokal mühitimizdə tətbiq etməyə imkan verir:
php.ini və ya my.cnf fayllarını sıfırdan konfiqurasiya etməyə ehtiyac yoxdur. Bir docker-compose.yml faylı bütün arxitekturanı izah edir və avtomatlaşdırır.Docker-i sıfırdan öyrənmək və mürəkkəb Dockerfile -lar yazmaq vaxt apara bilər. Lakin əgər xüsusi bir ehtiyacınız yoxdursa, Amerikanı yenidən kəşf etməyə ehtiyac yoxdur. Laravel, Docker istifadəsini sadələşdirmək üçün Laravel Sail adlı rəsmi, yüngül bir paket təqdim edir.
Əgər yeni bir Laravel layihəsinə başlayırsınızsa, kompüterinizdə yalnız Docker-in işlək olması kifayətdir. Terminalınızda sadəcə bu komandanı icra edin:
curl -s "https://laravel.build/menim-yeni-layihem" | bash
Bu qədər sadə. Bu komanda arxada sizin üçün yeni Laravel layihəsi yaradacaq və lazımi Docker konteynerlərini özü hazır edəcək.
Əgər artıq əlinizdə köhnə üsulla yazılmış (məsələn, XAMPP ilə başladığınız) layihə varsa, Sail-i layihəyə sonradan da əlavə edə bilərsiniz:
composer require laravel/sail --dev
php artisan sail:install
Bu proses sizdən layihədə hansı xidmətləri istədiyinizi soruşacaq və layihənizin qovluğunda docker-compose.yml faylı yaradacaq.
Bütün sehr bu komandadan sonra baş verir:
./vendor/bin/sail up -d
Artıq nə XAMPP-ın idarəetmə panelini açmağa, nə də "Apache niyə yenə xəta verir?" deyə log-ları axtarmağa və forumlarda həll yolu tapmağa ehtiyac yoxdur. Sizin təmiz, modern və hər yerdə eyni işləyən arxitekturanız arxa planda (-d yəni detached mode) işə düşdü.