یک برنامه ساده Node.js (با استفاده از ماژول http یا Express) بنویسید که روی پورت 3000 یک مسیر /hello را پاسخ دهد و سپس آن برنامه را با نوشتن یک Dockerfile کانتینریزه کنید تا بتوانید با docker build و docker run آن را اجرا و در مرورگر یا با curl مشاهده کنید.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:15 0.0
برای حل، یک پروژهٔ جاوااسکریپت بسازید (package.json و فایل index.js) که یک سرور HTTP ساده ایجاد کند. سپس یک Dockerfile بسازید (مثلاً از تصویر پایه node:16-alpine) و مراحل معمول را دنبال کنید: تنظیم WORKDIR، کپی package*.json و اجرای npm install، کپی بقیهٔ فایلها، EXPOSE 3000 و CMD برای اجرای برنامه. از .dockerignore برای کاهش اندازه تصویر استفاده کنید و کانتینر را با docker build -t my-node-app . و docker run -p 3000:3000 my-node-app اجرا کنید؛ حالا با مرورگر به http://localhost:3000/hello یا با curl پاسخ را مشاهده کنید. نکات: از تصاویر سبک استفاده کنید، پورت را در EXPOSE مستند کنید و برای توسعه میتوانید حجمها (volumes) را موقتاً مپ کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
اگر سرور Node.js را داخل کانتینر اجرا میکنید، مطمئن شوید که به 0.0.0.0 گوش میدهد تا از خارج قابل دسترس باشد. برای کاهش اندازه تصویر و امنیت، از multi-stage build با پایه node:16-alpine استفاده کنید و تنها فایلهای لازم را در مرحله نهایی کپی کنید. استفاده از .dockerignore برای نادیدهگرفتن node_modules و پوشههای غیرضروری باعث میشود تصویر کوچکتر و کش سریعتری داشته باشید. در محیط توسعه میتوانید volumes را برای سینک کد فعال کنید، اما در تولید بهتر است از volumes استفاده نکنید یا به طور محدود به کار ببرید.
گزارش