Docker کردن یک برنامه Node.js از ابتدا

Docker کردن یک برنامه Node.js می تواند فرآیند استقرار را تا حد زیادی ساده کند و مقیاس پذیری برنامه شما را بهبود بخشد. Docker یک پلتفرم کانتینریسازی است که به شما امکان میدهد برنامه خود و وابستگیهای آن را در یک کانتینر بسته بندی کنید، که سپس میتواند روی هر پلتفرمی که از Docker پشتیبانی میکند اجرا شود.
در این مقاله، مراحل مورد نیاز برای Dockerize کردن یک برنامه Node.js را از ابتدا مرور خواهیم کرد.
مرحله 1: یک برنامه Node.js ایجاد کنید
اولین قدم ایجاد یک برنامه Node.js است که می خواهیم آن را Dockerize کنیم. برای این کار، از فریم ورک Express.js استفاده می کنیم که یک فریم ورک کاربردی وب محبوب برای Node.js است.
برای ایجاد یک برنامه Express.js، ابتدا باید Node.js و مدیریت بسته npm را روی دستگاه خود نصب کنیم. هنگامی که Node.js و npm را نصب کردیم، میتوانیم با اجرای دستور زیر یک برنامه Express.js جدید ایجاد کنیم:
npx express-generator myapp
با این کار یک برنامه Express.js جدید در دایرکتوری به نام ایجاد می شود myapp
. پس از ایجاد برنامه، می توانیم به دایرکتوری رفته و وابستگی های آن را با استفاده از npm نصب کنیم:
cd myapp
npm install
مرحله 2: یک Dockerfile ایجاد کنید
مرحله بعدی ایجاد یک Dockerfile است، که یک فایل پیکربندی است که نحوه ساخت یک تصویر Docker را برای برنامه Node.js توضیح میدهد.
یک فایل جدید به نام ایجاد کنید Dockerfile
در دایرکتوری اصلی برنامه خود و محتوای زیر را اضافه کنید:
# Use an official Node.js runtime as a parent image
FROM node:14-alpine
# Set the working directory to /app
WORKDIR /app
# Copy package.json and package-lock.json to the working directory
COPY package*.json ./
# Install dependencies
RUN npm install
# Copy the rest of the application code to the working directory
COPY . .
# Expose port 3000
EXPOSE 3000
# Start the application
CMD [ "npm", "start" ]
بیایید خط به خط این Dockerfile را مرور کنیم:
-
FROM node:14-alpine
: این خط مشخص می کند که می خواهیم از زمان اجرا رسمی Node.js 14 به عنوان تصویر پایه برای تصویر Docker خود استفاده کنیم. Alpine یک توزیع سبک وزن لینوکس است که به دلیل اندازه کوچکش معمولاً برای تصاویر Docker استفاده می شود. -
WORKDIR /app
: این خط دایرکتوری کاری را برای تصویر داکر ما تنظیم می کند/app
. -
COPY package*.json ./
: این خط را کپی می کندpackage.json
وpackage-lock.json
فایل ها به دایرکتوری کاری -
RUN npm install
: این خط وابستگی های فهرست شده در را نصب می کندpackage.json
. -
COPY . .
: این خط بقیه کد برنامه را در پوشه کاری کپی می کند. -
EXPOSE 3000
: این خط پورت 3000 را نشان می دهد، که پورتی است که برنامه Node.js ما به آن گوش می دهد. -
CMD [ "npm", "start" ]
: این خط فرمانی را مشخص می کند که هنگام شروع کانتینر Docker اجرا شود. در این مورد، ما برنامه Node.js خود را با استفاده ازnpm start
فرمان
مرحله 3: تصویر داکر را بسازید
اکنون که یک Dockerfile داریم، میتوانیم از آن برای ساختن یک تصویر Docker برای برنامه Node.js خود استفاده کنیم. برای انجام این کار، از docker build
فرمان
یک پنجره ترمینال را باز کنید، به دایرکتوری اصلی برنامه خود بروید و دستور زیر را اجرا کنید:
docker build -t myapp .
این دستور به Docker میگوید که یک تصویر جدید با استفاده از Dockerfile در فهرست فعلی بسازد و آن را با نام تگ کند. myapp
. را .
در انتهای دستور، زمینه ساخت را مشخص می کند، که دایرکتوری است که داکر به عنوان ریشه فرآیند ساخت استفاده می کند.
مرحله 4: Docker Container را اجرا کنید
اکنون که یک تصویر Docker برای برنامه Node.js خود داریم، میتوانیم از آن برای اجرای یک کانتینر Docker استفاده کنیم. برای این کار از دستور docker run استفاده می کنیم.
یک پنجره ترمینال را باز کنید و دستور زیر را اجرا کنید:
docker run -p 3000:3000 myapp
این دستور به Docker میگوید که یک کانتینر جدید را با استفاده از تصویر myapp که بهتازگی ساختهایم اجرا کند و پورت 3000 را از کانتینر به پورت 3000 در دستگاه میزبان نقشهبرداری کند. این به ما امکان می دهد از مرورگر وب خود به برنامه Node.js خود که در داخل کانتینر اجرا می شود دسترسی پیدا کنیم.
اگر همه چیز به درستی تنظیم شده باشد، باید خروجی را در پنجره ترمینال ببینید که نشان می دهد برنامه Node.js شما در حال اجرا است. اکنون می توانید یک مرورگر وب را باز کنید و به http://localhost:3000 بروید تا برنامه خود را در عمل ببینید.
نتیجه
در این مقاله، ما مراحل مورد نیاز برای Dockerize کردن یک برنامه Node.js را از ابتدا مرور کردیم. ما با ایجاد یک برنامه جدید Node.js با استفاده از فریم ورک Express.js شروع کردیم، سپس یک Dockerfile ایجاد کردیم که نحوه ساخت یک تصویر Docker را برای برنامه ما توضیح میداد. سپس تصویر داکر را ساختیم و با استفاده از آن تصویر یک ظرف داکر را اجرا کردیم. با دنبال کردن این مراحل، اکنون باید یک برنامه کاملاً Dockerized Node.js داشته باشید که به راحتی قابل استقرار و مقیاسبندی باشد.
ممنون بخاطر وقتی که گذاشتید!