پروژه لاراولی خودت رو در یک چشم به هم زدن، داکر سازی کن

همانطور که می دانید، Docker از مجموعه ای از کانتینرها تشکیل شده که مستقل از همدیگر عمل میکنند. علت محشر بود داکر این است که تمام اعضای تیم می توانند روی آیتم های یکسان کار کنند. داکر می تواند برای شما سیستم عامل را شبیه سازی و تمامی پکیج های مورد نظر را گردآوری کند. وقتی از داکر صحبت میکنیم، منظور ما اجرای یک برنامه با تنظیمات اختصاصی ماست. ما این تنظیمات را می توانیم در فایل داکر مشخص کنیم.

مزایای استفاده از داکر چیست؟

ممکن است قبل از این، شما از آپاچی سرور برای اجرای برنامه های خود استفاده میکردید که البته گزینه خوبی است اما مناسب و راحت نیست. داکر به این دلیل خوب است که:

۱- تمامی اعضای تیم به پکیج های یکسان دسترسی دارند.

۲- تمامی افراد می توانند تغییرات دیگران را ببینند.

۳- تمامی تنظیمات و ورژن ها یکسان است.

حالا با تمام این مزایا، می توانیم به سراغ آموزش برویم. فرض را بر این میگیرم که شما بر روی سیستم لینوکسی خود، Docker نصب کردید و با لاراول آشنایی دارید.

نصب لاراول

۱- یک پوشه ایجاد کنید و نام آن را به دلخواه بگذارید.

۲- در همان دایرکتوری، ترمینال یا CMD خود را باز کنید و این کد را تایپ کنید:

composer create-project laravel/laravel example-app

۳- زمانی که لاراول نصب شد به فولدر لاراول بروید. ساختار لاراول شما چنین است:

۴- به فولدر public بروید و تمام فایل های آن جا را cut کنید.

۵- به روت (ریشه ) پروژه خود بروید یعنی خارج از فولدر لاراول.

۶- تمام فایل ها را اینجا paste کنید.

۷- خب ما این کارها را کردیم تا مجبور نشویم برای اجرای لاراول از دستور php artisan serve استفاده کنیم.

در واقع هدف این بود که که مسیر ریشه رو به سمت دسترسی به تمام فایل های پروژه هدایت کنیم.

داکر سازی لاراول

۸- حالا فایل index.php را باز کنید و به شکل زیر آن را ویرایش کنید:

خب ما واژه "لاراول" را ( که نام پروژه تان هست ) در همه مسیرها قرار دادیم.

۹- در مسیر ریشه پروژه تان، یک فایل Dockerfile ایجاد کنید و تمام. حواستان باشد، دقیقا حرف اول آن باید D بزرگ باشد.

۱۰- حالا کدهای زیر را در فایل Dockerfile وارد کنید و آن را ذخیره کنید:

FROM php:7.4-apache
COPY ./php.ini /etc/php/7.4/apache2/php.ini
RUN a2enmod rewrite
WORKDIR /var/www/html
RUN docker-php-ext-install mysqli

حواستان باشد که می توانید ورژن PHP دلخواهتان را تعیین کنید. دستور RUN a2enmod rewrite

برای دسترسی به فولدرهای زیر مجموعه سرور آپاچی صورت میگیرد. WORKDIR همان تعیین مسیر روت آپاچی سیستم شماست. در ویندوز این مسیر برابر با C:\HTTPD\Apache24\htdocs است و در لینوکس برابر با var/www/html/

۱۱- در ریشه پروژه خود، یک فایل بسازید تحت عنوان php.ini و همینطور خالی ذخیره اش کنید.

حالا زمان داکر سازی پروژه مان است.

۱۲- در ریشه پروژه تان، جایی که Dockerfile قرار دارد، ترمینال را باز کنید و کد زیر را وارد کنید:

docker build -t laravel:01

دستور docker build برای ایجاد یک ایمیج در داکر استفاده می شود. دستور t- برای دادن نام تگ دلخواه شما استفاده می شود. نقطه ( . ) به معنی در بر گرفتن تمامی فولدرها و زیر فولدرهای پروژه شما جهت ایجاد image است.

۱۳- حالا برای کسب اطمینان از ساخته شدن ایمیج مورد نظر تان، این دستور را در ترمینال وارد کنید:

docker images

حالا نوبتی هم باشد ، نوبت ایجاد container است . همانطور که ممکن است بدانید، کانتینر در واقع محلی برای ذخیره و اجرای ایمیج های داکر است. برای ایجاد و اجرای کانتینر دستور زیر را در ترمینال خود وارد کنید:

docker run -d -p 84:80 -name apachelaravel -v &quot$PWD&quot:/var/www/html laravel:01

خب دستور docker run که کاملا واضح است که قصدش ایجاد و اجرای کانتینر است. دستور p- برابر با سِت کردن پورت ۸۴ بر روی پورت واقعی ۸۰ سیستم آپاچی شماست. برای این که بدانید آیا کانتینر شما ایجاد شده یا خیر، دستور زیر را در ترمینال وارد کنید:

docker container ls -a

حالا مرورگر خود را باز کنید و بنویسید : http://localhost:84

اگر با ارور زیر مواجه شدید اصلا نگران نباشید به راحتی قابل حل است:


برای حل آن ابتدا وارد پوشه laravel بشوید و ترمینال را آن جا باز کنید. کافی است سه دستور زیر را به ترتیب وارد کنید:

chmod -R gu+w storage
chmod -R guo+w storage
php artisan cache:clear


این دستورات در واقع اجازه دسترسی سرور مجازی به دایرکتوری storage را می دهد. حالا صفحه مرورگر خود را ریفرش کنید و تمام:

لاراول شما بدون مشکل نصب شد. به همین سادگی ...


این مقاله، برگردان فارسی از مقاله انگلیسی بنده در وبسایت Hackernoon می باشد:

dockerize your laravel project in a jiffy