ناپکامرس یک پلتفرم اپن سورس، که با فناوری ماکروسافت طراحی شده است. ناپکامرس ورژن 4.20 با فریمورک داتنت کور میباشد و مایل هستیم روی لینوکس اجرا کنیم. راههای مختلفی برای این کار وجود دارد ولی راحتترین آن استفاده از داکر میباشد. در این مقاله میخواهیم یاد بگیریم به چه صورت ناپکامرس را روی لینوکس با استفاده داکر اجرا کنیم؟
قبل از اینکه شروع کنیم، در مورد داکر و اجزای آن که قراره در این مقاله ازشون استفاده کنیم آشنا بشیم.
داکر یک پلتفرم سبک، اوپن سورس و ایمن میباشد. داکر راهی برای سادهسازی روند ساخت پروژه، جابجای و اجرای برنامهها در یک محیط متفاوت است. Docker تمام وابستگیهای یک برنامه را جمع میکند و آن را در یک container (ظرف) اجرا میکند، در یک جمله ساده، شانس استفاده از MSSQL، بدون نیاز به دانلود، نصب و مدیریت آن را بهمون میدهد، کافیست container را با Docker اجرا کرده و از آن استفاده کنید - به همین سادگی.
از یک image برای ساخت یک container استفاده میشود، که دارای فایلهای لازم برای اجرای چیزی روی سیستم عامل، که مانند ویندوز یا اوبونتو است و دارای فریمورک برنامه شما، به همراه فایلهای پایگاه داده است که از آن پشتیبانی میکند. بنابراین، اگر از ASP.NET، NodeJS یا Python استفاده میکنید، imageها دارای کد معمول هستند.
ایمیج (image) ها فقط تعاریفی هستند که به طور مستقیم قابل اجرا نیستند. برای اجرای image ها، ما به containers(ظرف) نیاز داریم. containerها اینستنسهای هستند که به اجرای image با تنظیمات متفاوت مانند پورت، آدرس IP و غیره کمک میکنند.
برای اجرای چندین کانتینر در یک نمونه استفاده میشود. Docker Compose یک شبکه با کانتینرهای مختلف ایجاد میکند، از طریق این شبکه کانتینرها میتوانند با یکدیگر ارتباط برقرار کنند. بنابراین، اگر برنامه به کانتینرهای دیگری وابسته باشد، Docker Compose مناسب است.
میخواهیم برنامه nopCommerce با سرور MS SQL اجرا کنیم، پس از Docker Compose استفاده خواهیم کرد.
فرضیات
تمام دستورات موجود در این پست فرض را بر این می گذاریم که:
شما در حال اجرا لینوکس هستید
داکر روی سیستم شما نصب است
اجرای دستور Docker به root privileges و افزودن privilege احتیاج دارد، برای اجرای دستور باید پیشوند "sudo" را اضافه کنیم. برای سهولت کار، نام کاربری خود را به گروه Docker اضافه کنید تا هر زمان از دستور Docker استفاده میکنید، نیازی به پاس دادن "sudo" نباشد.
$sudo usermod -aG docker ${USER}
برای اعمال تغییرات، از سیستم خارج شوید و دوباره وارد سیستم شوید.
از آنجا که Docker قبلاً روی سیستم نصب شده است، نسخه را با استفاده از دستور زیر بررسی کنید:
docker –v
نتیجه
adminvm@adminvm-VirtualBox:~$ docker -v Docker version 18.09.7, build 2d0083d
اگر نسخه بدون پیام خطا نمایش دهد، آماده هستید تا مرحله بعدی را انجام دهید.
از آنجا که باید nopCommerce با کانتینر SQL Server ارتباط برقرار کند، باید Docker Compose را روی دستگاه نصب کنیم. به خاطر داشته باشید که Docker Compose باید جداگانه نصب شود. با نصب پیش فرض داکر نصب نمیشود.
با دستورات زیر نصب کنید:
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose sudo chmod +x /usr/bin/docker-compose
پس از آن، نسخه Docker Compose را با دستورات زیر بررسی کنید:
docker-compose -v
نتیجه
adminvm@adminvm-VirtualBox:~$ docker-compose -v docker-compose version 1.22.0, build f46880fe
کد nopCommerce 4.20 را بر روی دستگاه خود دانلود کنید و فایل docker-compose.yml را در فایل اصلی باز کنید.
در محل فایل "docker-compose.yml" ترمینال (terminal ) را باز کنید و دستور زیر را بزنید:
با این کار ایمیجهای مورد نیاز دانلود میشود، پروژه ساخته میشود و کانتینرها استارت میخورند. مدتی طول خواهد کشید - آرام بنشینید و آرام باشید!
پس از اتمام مراحل، باید صفحه زیر با لاگها مربوط را مشاهده کنید.
ترمینال دوم را باز کرده و دستور زیر را اجرا کنید. تمام کانتینرها در حال اجرا را لیست میکند. باید ببینید که هر دو کانتینر nopCommerce و SQL Server اکنون در حال اجرا هستند.
[docker ps]
یک تب در مرورگر باز کنید و لینک زیر را بزنید. صفحه نصب nopCommerce را باز میکند.
http://localhost:80
نام کانتینر و رمز عبور پایگاه داده را که در فایل yml تعریف شده است، منتقل کنید.
پس از نصب، باید صفحه تنظیم مجدد اتصال را ببینید زیرا عملکرد کانتینر برنامه ما متوقف شده است.
دوباره دستور زیر را اجرا کنید تا کانتینرهای در حال اجرا را ببینید. باید ببینید که فقط یک کانتینر MSSQL در حال اجرا است.
[docker ps]
برای دریافت لیستی از تمام کانتینرها، دستور زیر را اجرا کنید.
[docker ps -a]
برای اجرای دوباره کانتینر وب، دستور
[docker container start <container-id>]
را اجرا کنید. به راحتی میتوانید سه کاراکتر اول شناسه کانتینر را بدهید.
با دستور زیر لیست کانتینرها در حال اجرا را دنبال کنید. باید ببینید اکنون هر دو کانتینر در حال اجرا هستند.
به localhost بروید و Refresh را بزنید. تا صفحه اصلی nopCommerce لود شود.
تبریک میگویم! شما اولین فروشگاه nopCommerce خود را در Linux اجرا میکنید !!
ممنون از همه خوانندگان.
منبع: