تنظیم Docker برای برنامه‌های لاراول با استفاده از php:8.2-apache

docker configuration for laravel with php 8.2 apache
20 آبان 1403

سلام دوستان! در اینجا می‌خواهیم نگاه نزدیکی به چگونگی تنظیم 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
دایرکتوری کاری را به دایرکتوری برنامه لاراول تغییر می‌دهد تا دستورها به طور پیش‌فرض در آنجا اجرا شوند.

سوالات متداول

؟

چرا از docker برای لاراول استفاده کنیم؟

؟

چگونه کتابخانه‌های مورد نیاز لاراول را نصب کنیم؟

؟

آیا می‌توانیم از نسخه‌های دیگر PHP استفاده کنیم؟

؟

Composer چه کمکی به ما می‌کند؟