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

بهتر بود اول در مورد داکر بگم . اما دیدم که توی ویرگول هست . نیازی نیست هزار بار یک مطلب نوشته بشه . بهتره که همدیگرو کامل کنیم . ( در حد سواد و توان ) . من هم در حد سوادم تصمیم گرفتم که نحوه داکرایز کردن لاراول رو براتون بگم . خیلی سخت نیست . باحاله .
اگر نمیدونین داکر چیه ، به لینک زیر برید .
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). اینجوری دیگه لازم نیست هر بار این کارارو بکنید .
در آخر اگر مطلبم مفید بود یک فنجون قهوه مهمونم کن . حرف زیاد داریم بزنیم
مطلبی دیگر از این انتشارات
حالا چرا لاراول؟ ـ یک شاهد کنسولی
مطلبی دیگر از این انتشارات
کامپوزر چیست؟! چرا باید از کامپوزر استفاده کنیم؟
مطلبی دیگر از این انتشارات
بزرگترین گروه برنامه نویسان لاراول در واتساپ