یک برنامهٔ سادهٔ Node.js (JavaScript) بنویسید و با ایجاد یک Dockerfile آن را کانتینریز کنید بهطوری که تصویر ساخته شده با اجرای کانتینر روی پورت 3000 پاسخ بدهد.
4.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:35 0.0
برای حل این مسئله یک فایل index.js که یک سرور HTTP ساده روی پورت 3000 راهاندازی میکند و یک package.json با اسکریپت start ایجاد کنید؛ سپس یک Dockerfile بسازید (مثلاً از تصویر پایه node:16-alpine استفاده کنید) و با دستورات WORKDIR، COPY package*.json و RUN npm install و در نهایت COPY . و EXPOSE 3000 و CMD ["node","index.js"] تصویر را تنظیم کنید. قبل از ساخت تصویر از .dockerignore برای حذف فایلهای غیرضروری مثل node_modules استفاده کنید و تصویر را با docker build -t my-node-app . و با docker run -p 3000:3000 my-node-app اجرا و با curl یا مرورگر تست کنید. نکات مفید: از تصاویر سبک مثل alpine استفاده کنید، لایهها را با ترتیب مناسب دستورات کاهش دهید و برای محیط تولید متغیر NODE_ENV را تنظیم کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته: برای امنیت و کارایی بهتر، از کاربر غیر روت در کانتینر استفاده کنید و فایلهای حساس را در .dockerignore نگهداری کنید. همچنین با استفاده از multi-stage build، نصب پکیجها را در یک مرحله انجام داده و فقط فایلهای لازم را به تصویر نهایی کپی کنید تا اندازه تصویر کاهش یابد. فراموش نکنید NODE_ENV=production را در کانتینر تنظیم کنید و از npm ci به جای npm install برای تثبیت نسخهها بهره بگیرید.
گزارش