آموزش Dockerize کردن پروژه

در این آموزش قصد داریم ابتدا یک پروژه ی Web API ساخته و سپس آن را Dockerize یا Containerize کنیم. سپس با دستورات Docker آن را اجرا کرده و به آن Request بفرستیم.

ابتدا می خواهیم یک پروژه Web API بسازیم. با اجرای دستور زیر در CMD یک پروژه ی Web API خواهیم داشت.

dotnet new webapi -o TestApi –no-https

در cmd به دایرکتوری پروژه می رویم

cd testapi

و با دستور زیر، VS Code را باز می کنیم.

code .

یک کنترلر به صورت پیشفرض به نام WeatherForecastController وجود دارد. می توانیم از آن استفاده کنیم یا یک کنترلر جدید بسازیم. اگر پروژه را اجرا کنیم و با Postman به http://localhost:5000/weatherforecast درخواست بفرستیم می توانیم خروجی پروژه را ببینیم.  ما به پروژه ی در حال اجرا Request فرستادیم. حال می خواهیم به جای آن، ابتدا پروژه را Dockerize کنیم و سپس به آدرس جدید درخواست بفرستیم.

برای اینکار، بهتر است که Extension مخصوص Docker را در VS Code نصب کنیم. به قسمت Extensions در VS Code رفته و عبارت Docker را جستجو می کنیم و آن را نصب می کنیم.

برای اعمال تنظیمات فایل های Docker ابتدا به منو VS Code رفته و در قسمت View روی گزینه ی Command Palette کلیک می کنیم. سپس عبارت  docker: add را نوشته و روی نتیجه پیدا شده کلیک می کنیم ( با اینکار فایل های Docker به پروژه اضافه می شوند). در قسمت بعدی روی ASP.NET Core کلیک می کنیم زیرا Framework ماست. قسمت بعدی از ما نوع سیستم عامل را می پرسد. روی Linux کلیک می کنیم. در قسمت بعدی از ما سوال می شود که می خواهید برنامه شما به چه پورتی گوش دهد؟ شماره پورت 80 را انتخاب می کنیم.

اگر مراحل را به درستی طی شود، محتویات فایل Docker مانند زیر خواهد بود.

با دستور زیر پروژه Dockerize می شود. t حرف اول Tag می باشد و بعد از دو نقطه، ورژن آن را می نویسیم. نقطه ای که پایان دستور آمده به آن معناست که مکان فعلی جایی است که دستورات docker در آن اجرا می شوند.

docker build -t test-api-project:v1 .

بعد از اینکه فایل Image پروژه ساخته شد، می توان با کد زیر، لیست تمام Image های موجود در Docker را مشاهده کرد.

docker images

با دستور زیر می توان فایل Image پروژه را اجرا کرد.

docker run -it – -rm -p 8080:80 test-api-project:v1

تبریک! عملیات Dockerize به پایان رسید. برای ارسال درخواست به این Image می توان به آدرس زیر درخواست فرستاد.

http://localhost:8080/weatherforecast

نوشته شده توسط mrbitmap علیرضا علی رمضانی

مقالات مرتبط

جدیدترین مقالات

فهرست