یه برنامه نویس معمولی لینوکس کار
داکر - لاراول
بهتر بود اول در مورد داکر بگم . اما دیدم که توی ویرگول هست . نیازی نیست هزار بار یک مطلب نوشته بشه . بهتره که همدیگرو کامل کنیم . ( در حد سواد و توان ) . من هم در حد سوادم تصمیم گرفتم که نحوه داکرایز کردن لاراول رو براتون بگم . خیلی سخت نیست . باحاله .
اگر نمیدونین داکر چیه ، به لینک زیر برید .
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 رو ویرایش میکنیم و مقادیر زیر رو میزاریم داخل فایل :
# Dockerfile
FROM php:7.2-apache
RUN docker-php-ext-install pdo_mysql
RUN a2enmod rewrite
ADD . /var/www
ADD ./public /var/www/html
حالا باید یک image بسازیم :
$ docker build -t laravelDockerize .
Sending build context to Docker daemon 199.3 MB
Step 1 : FROM php:7.2-apache
---> ff9a799b983b
Step 2 : RUN docker-php-ext-install pdo_mysql
---> Running in 887b0da6b9f0
# ...
---> c118d49af5a5
Removing intermediate container 887b0da6b9f0
Step 3 : RUN a2enmod rewrite
---> Running in 404d0edd6155
# ...
---> 3b310df07570
Removing intermediate container 404d0edd6155
Step 4 : ADD . /var/www
---> 32a347cdecff
Removing intermediate container 38d0903c1043
Step 5 : ADD ./public /var/www/html
---> 152beb432214
Removing intermediate container c714564b3dec
Successfully 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-apache
RUN docker-php-ext-install pdo_mysql
RUN a2enmod rewrite
ADD . /var/www
ADD ./public /var/www/html
ADD config/docker/apache.conf /etc/apache2/httpd.conf
COPY config/docker/php.ini /usr/local/etc/php/
خوب یک بار دیگه image رو اجرا میکنیم .
$ docker build -t laravelDockerize .
حالا به دیتابیس و صفحه ها روترها دسترسی کامل داریم و روی همون آی پی قبلی میتونیم کارارو بکنیم .
بهتره که همیشه تنظیمات داکرتون رو روی git یا روی Hub خود داکر بفرستید (push). اینجوری دیگه لازم نیست هر بار این کارارو بکنید .
در آخر اگر مطلبم مفید بود یک فنجون قهوه مهمونم کن . حرف زیاد داریم بزنیم
مطلبی دیگر از این انتشارات
لاگین با گوگل در لاراول
مطلبی دیگر از این انتشارات
پکیج تجزیه کننده User Agent برای لاراول
مطلبی دیگر از این انتشارات
لاراول : Mass Assignment