یک برنامه ساده Node.js که یک سرور HTTP در index.js روی پورت 3000 پاسخ "Hello Docker" میدهد را کانتینریزه کن: یک Dockerfile و .dockerignore بنویس، تصویر بساز و با نقشهبرداری پورت و تنظیم یک متغیر محیطی اجرا کن و یک README کوتاه با دستورهای build/run اضافه کن.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:23 0.0
برای حل این سوال یک پروژهی کوچک Node.js بساز (package.json، index.js) سپس یک Dockerfile بنویس — مثلاً از base image سبک node:alpine استفاده کن، ابتدا فقط package.json را COPY کن و npm install اجرا کن تا کش داکر حفظ شود، سپس بقیه فایلها را COPY کن، پورت 3000 را EXPOSE کن و با CMD ["node","index.js"] اجرا کن. فایل .dockerignore را برای نادیدهگرفتن node_modules و پوشههای غیرضروری بساز. دستورات مفید: docker build -t my-node-app . و docker run -p 3000:3000 -e NODE_ENV=production my-node-app. نکات: برای توسعه از volume مپینگ استفاده کن (-v)، تصاویر کوچکتر انتخاب کن (alpine)، و کانتینرها را حالت stateless در نظر بگیر.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای داشتن تصویر کوچکتر و کشپذیر بهینه، از node:alpine به عنوان base و استفاده از استراتژی کش با COPY کردن package.json قبل از سایر فایلها استفاده کن. حتماً اول package.json را Copy کن و npm install را اجرا کن تا کش داکر حفظ شود، سپس بقیهٔ فایلها را Copy کن. .dockerignore را ننویس تا node_modules و فایلهای غیرضروری را نادیده بگیرد، پورت 3000 را EXPOSE کن و با CMD ["node","index.js"] اجرا کن. برای توسعه از -v برای مپینگ ولوم استفاده کن و در محیط production مقدار NODE_ENV=production را تنظیم کن و ترجیحاً از کاربر غیرroot استفاده کن تا امنیت افزایش یابد.
گزارش