سلام دوستان! در اینجا میخواهیم نگاه نزدیکی به چگونگی تنظیم Docker برای برنامههای لاراول با استفاده از php:8.2-apache داشته باشیم. شاید خیلی از شماها که با این فناوری کار میکنید، دغدغههایی برای نصب و پیکربندی بهینه داشته باشید. بریم سراغش.
اولین چیزی که باید به یاد داشته باشید این است که Docker یک ابزار قدرتمند برای ساخت محیطهای سازگار و قابل حمل است. این ابزار به خصوص برای پروژههای لاراول بسیار مفید است چرا که نیاز به نسخههای مختلف PHP و اکستنشنهای خاص دارد. با استفاده از Docker میتوانید این نیازها را به سادگی مدیریت کنید.
ما از تصویر رسمی php:8.2-apache
استفاده میکنیم که از پیش همراه با Apache میآید و نیازی به نصب جداگانه ندارد. این تصویر به صورت مرتب به روزرسانی میشود و میتوانید به راحتی با تغییر نسخه در فایل Docker خود، پروژهتان را به روز نگه دارید.
برای شروع کار، یک فایل Dockerfile
میسازیم که تنظیمات تصویر PHP و سایر اکستنشنهای مورد نیاز لاراول را اضافه میکند. همچنین از تکنولوژیهای خوبی مثل Composer
برای مدیریت پکیجها استفاده خواهیم کرد.
در نهایت، با استفاده از فایل docker-compose.yml
میتوانیم به طور همزمان چندین کانتینر مختلف برای دیتابیس، وب سرویس و سایر ابزارها راهاندازی کنیم. این امر به ما اجازه میدهد تا محیطی مشابه تولید با حداقل تلاش روی سیستم محلی خود داشته باشیم.
کد نمونه تنظیم Docker برای لاراول
FROM php:8.2-apache
COPY . /var/www/html
RUN docker-php-ext-install pdo pdo_mysql
RUN apt-get update \&& apt-get install -y libpng-dev libjpeg-dev \&& docker-php-ext-configure gd --with-jpeg=/usr/include/ \&& docker-php-ext-install gd
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN chown -R www-data:www-data /var/www/html
WORKDIR /var/www/html
توضیح خط به خط کد
FROM php:8.2-apache
این خط بیان میکند که چه تصویری را برای ساخت کانتینر PHP و Apache استفاده کنیم.
COPY . /var/www/html
کدهای پروژه لاراول را به پوشهای در داخل کانتینر کپی میکند.
RUN docker-php-ext-install pdo pdo_mysql
اکستنشنهای مورد نیاز لاراول (PDO و PDO_MySQL) را نصب میکند.
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev && docker-php-ext-configure gd --with-jpeg=/usr/include/ && docker-php-ext-install gd
همه کتابخانههای لازم برای تولید و نصب اکستنشن GD را نصب میکند، که برای کار با تصاویر مورد نیاز است.
COPY --from=composer /usr/bin/composer /usr/bin/composer
Composer که ابزاری برای مدیریت پکیجهای PHP است را نصب میکند.
RUN chown -R www-data:www-data /var/www/html
برای اطمینان از اینکه سرور Apache دسترسی لازم به فایلها را دارد، مالکیت دایرکتوری پروژه را تغییر میدهد.
WORKDIR /var/www/html
دایرکتوری کاری را به دایرکتوری برنامه لاراول تغییر میدهد تا دستورها به طور پیشفرض در آنجا اجرا شوند.