در این پست به بررسی کدهای مربوط به داکرایز کردن یک پروژه پی اچ پی می میپردازیم. در این پروژه از دیتابیس mysql استفاده نشده است.
1. فرض کنید ما یک پروژه ساخته ایم و محتویات پروژه را در پوشه pubic_html ذخیره کرده ایم. ابتدا یک پوشه بنام docker_public_html میسازیم و پوشه public_html را به آن منتقل میکنیم.
2. در پوشه docker_public_html یک فایل بنام Dockerfile میسازیم. و کدهای زیر را در این فایل مینویسیم.
FROM php:8.1-apache #copy public_html to /var/www/html/ COPY ./public_html /var/www/html COPY ./.htaccess /var/www/html/ #premision for php RUN chown -R www-data:www-data /var/www #enable rewrite in .htaccess RUN a2enmod rewrite
بجای php:8.1-apache میتوان هرکدام از نسخه های موجود در این منبع را انتخاب نمود. بهتر از یکی از نسخه ها با پسوند آپاچی را انتخاب نمود.
3. در مسیر پوشه docker_public_html ترمینال را باز میکنیم و دستورات زیر را وارد میکنیم.
4. ابتدا از پروژه ایمیج میسازیم :
docker build -t php_project .
بجای php_project میتوان هر نام دیگری قرار داد. و علامت . آخر کد هم به معنی مسیر Dockerfile در همین پوشه است.
5. با دستور زیر چک میکنیم که image ساخته شده است.
docker image ls
6. پس از اطمینان از ساخته شدن docker image فقط کافیست پروژه را روی پورت 80 ران کنیم.
docker run --name php_container -p 80:80 php_project
نام php_containerاختیاری بوده و میتوان از نام دیگری استفاده نمود. و php_project هم نام docker image ساخته شده در مرحله 4 است.
تا اینجا اگر مشکلی پیش نیامده باشد وب سایت شما روی پورت 80 لانچ شده است. برای متوقف کردن کانتینر php میتوان از دستور زیر استفاده کرد.
docker stop php_container
docker rm php_container
و در صورت تمایل به حذف image ساخته شده میتوان از دستور زیر استفاده کرد.
docker rmi php_project
در صورت ارور مبنی بر اینکه قادر به حذف image نیستید از دستور زیر استفاده کنید.
docker rmi php_project -f
امیدوارم مفید بوده باشه
منبع : داکرایز کردن پروژه پی اچ پی و اپاچی