یه برنامه نویس معمولی لینوکس کار
داکر - لاراول

بهتر بود اول در مورد داکر بگم . اما دیدم که توی ویرگول هست . نیازی نیست هزار بار یک مطلب نوشته بشه . بهتره که همدیگرو کامل کنیم . ( در حد سواد و توان ) . من هم در حد سوادم تصمیم گرفتم که نحوه داکرایز کردن لاراول رو براتون بگم . خیلی سخت نیست . باحاله .
اگر نمیدونین داکر چیه ، به لینک زیر برید .
https://virgool.io/DockerMe/what-is-docker-piqgcvx1nqt7
حالا بیاین ببینیم که داستان چیه .
خوب اگر داکر رو در حد مبتدی کار کرده باشین ، میدونین که یک فایل dockerfile داریم و یک composer .
حالا میخوایم بهترین تنظیمات رو انجام بدیم .
اول از همه مطمئن بشیم که داکر ماشین راه افتاده و داره کار میکنه :
$ docker-machine start default$ eval $(docker-machine env default)دستور اول ماشین رو روی default اجرا میکنه و دستور دوم روی محیط docker-machine مقدار default رو ست میکنه .
حالا ما یک پروژه لاراول داریم . با همه جزییات و فایل ها و همه چیز . کاری هم به تنظیمات لاراول نداریم . فرض میگیریم یک پوشه داریم و باید این پوشه بره بالا . بعدشم یک سری دستور برای راه اندازیش میزنیم .
این خیلی مهمه که پوشه لاراول کنار فایل DockerFile باشه . بزارید اینجوری بریم جلو .
- اول یک پوشه میسازیم .
- بعدش DockerFile میسازیم .
- بعدش هم پروژه لاراول رو توی پوشه ای که ساختیم کپی میکنیم .
cd ~/var/www/
mkdir laravelDockerize
cd laravelDockerize
touch DockerFile
cp -a html/laravelProject/ laravelDockerize/خوب حالا فایل DockerFile رو ویرایش میکنیم و مقادیر زیر رو میزاریم داخل فایل :
# DockerfileFROM php:7.2-apacheRUN docker-php-ext-install pdo_mysqlRUN a2enmod rewriteADD . /var/wwwADD ./public /var/www/htmlحالا باید یک image بسازیم :
$ docker build -t laravelDockerize .
Sending build context to Docker daemon 199.3 MBStep 1 : FROM php:7.2-apache ---> ff9a799b983bStep 2 : RUN docker-php-ext-install pdo_mysql ---> Running in 887b0da6b9f0# ... ---> c118d49af5a5Removing intermediate container 887b0da6b9f0Step 3 : RUN a2enmod rewrite ---> Running in 404d0edd6155# ... ---> 3b310df07570Removing intermediate container 404d0edd6155Step 4 : ADD . /var/www ---> 32a347cdecffRemoving intermediate container 38d0903c1043Step 5 : ADD ./public /var/www/html ---> 152beb432214Removing intermediate container c714564b3decSuccessfully built 152beb432214فقط خط اول رو باید اجرا کنید . خط های بعدی نتیجه اجرای خط اوله .
حالا container لاراول رو روی 80 میاریم بالا .
$ docker run -p 80:80 laravelDockerizeالان لاراول باید روی پورت 80 بیاد بالا.
برای اینکه بدونید لاراول روی ماشین چه پورتی داره ، دستور زیرو بنویسین :
$ docker-machine ip defaultمثلا اگر آی پی http://192.168.99.100 بزنید ، باید لاراول بیاد بالا . اما اگر میخواین مطمئن باشدی که آی پی شما چنده ، باید دستور بالا رو بزنین .
اما هنوز کار داریم . بریم مراحل بعدی
ما نه دیتابیس رو آوردیم ، نه کارهای تنظیمات آپاچ رو . باید کاملش کنیم .
فرض کنیم که دیتابیس روی آدرس localhost دسترسی داره و telnet پورت 3306 بازه . خوب دسترو زیر رو بزنیم پس ، که بتونیم برسیم به دیتابیس . اما قبلش باید مطمئن باشیم که فایل .env با تنظیمات ما یکسانه .
$ docker run -p 80:80 -e DB_HOST=localhost laravelDockerizeخوب . اوضاع خوبه . حالا بریم که تنظیمات آپاچ رو اضافه کنیم . ما یک سری تنظیمات توی آپاچ سیستم لوکال داریم که سالم و درسته . کافیه به داکر بگیم که همینو بردار بنداز بالا .
پس فایل DockerFile رو به زیر تغییر بدید :
FROM php:7.2-apacheRUN docker-php-ext-install pdo_mysqlRUN a2enmod rewriteADD . /var/wwwADD ./public /var/www/htmlADD config/docker/apache.conf /etc/apache2/httpd.confCOPY config/docker/php.ini /usr/local/etc/php/خوب یک بار دیگه image رو اجرا میکنیم .
$ docker build -t laravelDockerize .حالا به دیتابیس و صفحه ها روترها دسترسی کامل داریم و روی همون آی پی قبلی میتونیم کارارو بکنیم .
بهتره که همیشه تنظیمات داکرتون رو روی git یا روی Hub خود داکر بفرستید (push). اینجوری دیگه لازم نیست هر بار این کارارو بکنید .
در آخر اگر مطلبم مفید بود یک فنجون قهوه مهمونم کن . حرف زیاد داریم بزنیم
مطلبی دیگر از این انتشارات
ساخت پکیجها در فریمورک لاراول
مطلبی دیگر از این انتشارات
تینکر در لاراول چیست؟! یک پکیج فوق العاده برای کار با تینکر?
مطلبی دیگر از این انتشارات
اعلام حمایت سپیدار گیفت از دورهمی لاراول