برنامه نویسی

راهنمای گام به گام برای کانتینر کردن برنامه MERN تمام پشته خود با استفاده از Docker Compose.

Summarize this content to 400 words in Persian Lang در اینجا یک راهنمای گام به گام برای کانتینر کردن برنامه MERN کامل استک، ابتدا هر جزء پشته به صورت محلی و سپس انتقال به Docker Compose آورده شده است.

مرحله 1: مخزن GitHub خود را کلون کنید و به دایرکتوری های محلی بروید

مخزن GitHub خود را کلون کنید: کد خود را مانند شکل زیر از مخزن github خود کپی کنید

Go to your terminal and run:
bash
git clone https://github.com/Uwadon1/dockerize-a-mern-stack-app.git

در مرحله بعد باید به دایرکتوری جدید شبیه سازی شده بروید

سی دی dockerize-a-mern-stack-app

بررسی ساختار دایرکتوری: مطمئن شوید که پوشه های پروژه شما دارای Frontend/Web-tier، Backend/app-lier و پایگاه داده هستند. اگر چنین است، مجموعه نهایی ما به احتمال زیاد شبیه این خواهد بود، لطفاً توجه داشته باشید زیرا ما پایگاه داده خود را مستقیماً از باطن اجرا می کنیم: `
project-directory/ ├── frontend/ ├── backend/ ├── database/ └── docker-compose.yml (این بعدا ایجاد خواهد شد)

بهترین روش ها: استفاده از یک فایل .dockerignore را برای حذف فایل های غیر ضروری از تصویر در نظر بگیرید.

مرحله 2: برای هر کامپوننت پشته Dockerfiles ایجاد کنید

Frontend (React)

حرکت به frontend پوشه و ایجاد یک Dockerfile:

Dockerfile
# Dockerfile برای frontend

از تصویر رسمی به عنوان تصویر والدین استفاده کنید
توضیحات: Dockerfile برای سمت مشتری برنامه پشته MERN

از تصویر رسمی به عنوان تصویر والدین استفاده کنید

FROM node:18.9.1

دایرکتوری کاری را تنظیم کنید

WORKDIR / برنامه

فایل را از هاست خود در مکان فعلی خود کپی کنید

COPY package.json .

دستور را در داخل فایل سیستم تصویری خود اجرا کنید

نصب npm را اجرا کنید

به Docker اطلاع دهید که کانتینر در حال گوش دادن به پورت مشخص شده در زمان اجرا است

EXPOSE 5173

بقیه کد منبع برنامه خود را از میزبان خود در سیستم فایل تصویری خود کپی کنید

کپی کنید. .

دستور مشخص شده را در داخل کانتینر اجرا کنید

CMD [“npm”, “run”, “dev”]

توضیح: این Dockerfile وابستگی ها را نصب می کند، کد فرانت اند را می سازد و استفاده می کند serve برای میزبانی فایل های استاتیک Dockerfile Breakdown این Dockerfile با استفاده از محیط Node.js یک تصویر محفظه برای یک برنامه React frontend می سازد. بیایید هر خط را بشکنیم:

FROM node:18.9.1: این خط تصویر پایه کانتینر را مشخص می کند. node:18.9.1 نشان می دهد که ما از تصویر رسمی Node.js 18.9.1 به عنوان نقطه شروع استفاده می کنیم.
WORKDIR /app: این دایرکتوری کاری درون کانتینر را روی /app تنظیم می کند. اینجاست که تمام دستورات بعدی اجرا می شود.
COPY package.json .: این فایل package.json را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این فایل شامل وابستگی ها و پیکربندی پروژه است.
RUN npm install: دستور npm install را در کانتینر اجرا می کند تا تمام وابستگی های فهرست شده در فایل package.json را نصب کند.
EXPOSE 5173: به Docker اطلاع می دهد که کانتینر به درگاه 5173 گوش می دهد. این پورت اغلب توسط سرورهای توسعه مانند Create React App استفاده می شود.
کپی کنید. .: همه فایل ها و دایرکتوری های باقیمانده را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این شامل کد منبع برنامه React شما می شود.
CMD [“npm”, “run”, “dev”]: دستور پیش فرضی را مشخص می کند که هنگام شروع کانتینر اجرا شود. در این حالت، اسکریپت dev تعریف شده در فایل package.json را اجرا می کند. این اسکریپت معمولاً سرور توسعه را برای برنامه React شما راه اندازی می کند.

ساخت و اجرای تصویر: برای ساختن تصویر داکر، از دستور زیر استفاده کنید:
ضربه شدید
docker build -t mern-frontend .

این دستور یک تصویر به نام mern-frontend بر اساس Dockerfile در فهرست فعلی ایجاد می کند. توجه: لطفاً قبل از ساختن تصویر docker خود مطمئن شوید که دسکتاپ docker شما اجرا می شود.
همانطور که در زیر نشان داده شده است، می بینید که تصویر جلویی ما با موفقیت ساخته شده است

قبل از اجرا، باید یک شبکه ایجاد کنیم تا کانتینرهای ما بتوانند به طور یکپارچه با یکدیگر ارتباط برقرار کنند. برای ایجاد شبکه docker خود، از موارد زیر استفاده می کنیم:
ضربه شدید
شبکه docker ایجاد mern

در مرحله بعد، ما باید کانتینر خود را اجرا کنیم، برای اجرای کانتینر خود از موارد زیر استفاده می کنیم:
ضربه شدید
docker run –name=frontend –network=mern -d -p 5173:5173 mern-frontend

این دستور یک کانتینر را بر اساس تصویر mern-frontend شروع می کند و پورت 5173 کانتینر را به پورت 5173 دستگاه میزبان شما نگاشت می کند. این به شما امکان می دهد به برنامه React خود در مرورگر http://localhost:5173 دسترسی داشته باشید.

Backend (Node.js & Express)

بهترین کار این است که همیشه ابتدا یک کانتینر پایگاه داده را راه اندازی کنید تا از خطا جلوگیری شود.
پایگاه داده (MongoDB)

برای MongoDB، شما نیازی به Dockerfile ندارید، زیرا MongoDB یک تصویر رسمی در Docker Hub دارد.

برای اجرای کانتینر پایگاه داده خود، از:
ضربه شدید
docker run –name=mongodb –network=mern -d -p 27017:27017 -v ~/opt/data:data/db mongo:latest

حرکت به backend پوشه و ایجاد یک Dockerfile:

`dockerfile
# Dockerfile برای Backend

FROM node:18.9.1

WORKDIR / برنامه

COPY package.json .

نصب npm را اجرا کنید

کپی کنید. .

EXPOSE 5050

CMD [“npm”, “start”]

توضیح: این سرویس باطن را برای گوش دادن به پورت 5000 و استفاده از آن تنظیم می کند npm start برای شروع Dockerfile Breakdown برای Backend این Dockerfile برای ایجاد یک تصویر کانتینر برای برنامه Backend Node.js طراحی شده است. بیایید هر خط را بشکنیم:

FROM node:18.9.1: این خط تصویر پایه کانتینر را مشخص می کند. node:18.9.1 نشان می دهد که ما از تصویر رسمی Node.js 18.9.1 به عنوان نقطه شروع استفاده می کنیم.
WORKDIR /app: دایرکتوری کاری درون کانتینر را روی /app تنظیم می کند. اینجاست که تمام دستورات بعدی اجرا می شود.
COPY package.json .: فایل package.json را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این فایل شامل وابستگی ها و پیکربندی پروژه است.
RUN npm install: دستور npm install را در کانتینر اجرا می کند تا تمام وابستگی های فهرست شده در فایل package.json را نصب کند.
کپی کنید. .: همه فایل ها و دایرکتوری های باقیمانده را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این شامل کد منبع برنامه کاربردی Node.js شما می شود.
EXPOSE 5050: به Docker اطلاع می دهد که کانتینر به پورت 5050 گوش می دهد. این پورتی است که سرور Node.js شما به آن گوش می دهد.
CMD [“npm”, “start”]: دستور پیش فرضی را مشخص می کند که هنگام شروع کانتینر اجرا شود. در این حالت، اسکریپت start تعریف شده در فایل package.json را اجرا می کند. این اسکریپت معمولا سرور Node.js شما را راه اندازی می کند. ساختن و اجرای تصویر: برای ساختن تصویر داکر، از دستور زیر استفاده می کنید: Bash docker build mern-backend .

این دستور یک تصویر به نام mern-backend بر اساس Dockerfile در فهرست فعلی ایجاد می کند.

برای اجرای کانتینر، از:
ضربه شدید
docker run –name=backend –network=mern -d -p 5050:5050 mern-backend

این دستور یک کانتینر را بر اساس تصویر mern-backend شروع می کند و پورت 5050 کانتینر را به پورت 5050 دستگاه میزبان شما نگاشت می کند. این به شما امکان می دهد به برنامه باطن Node.js خود در http://localhost:5050 دسترسی داشته باشید.

کانتینرهای خود را ساخته‌ایم و پشته MERN خود را به صورت محلی مستقر کرده‌ایم، که واقعاً بهترین روش نیست، می‌خواهم نشان دهم چگونه می‌توانید همه دستورات را در یک فایل واحد و تنها با یک دستور اجرا کنید.:
ایجاد یک docker-compose.yml فایل

در دایرکتوری ریشه پروژه خود، a ایجاد کنید docker-compose.yml برای هماهنگ کردن همه خدمات با هم.

یامل
خدمات:
پیشانی:
ساخت: ./mern/frontend
پورت ها:
– “5173:5173”

شبکه ها:
-mern_network
محیط زیست:
REACT_APP_API_URL: http://backend:5050

باطن:
ساخت: ./mern/backend
پورت ها:
– “5050:5050”
شبکه ها:
-mern_network
محیط زیست:
MONGO_URI: mongodb://mongo:27017/mydatabase

بستگی_به:
– mongodb

mongodb:
تصویر: mongo: آخرین

پورت ها:
– “27017:27017”

شبکه ها:
-mern_network
حجم ها:
– mongo-data:/data/db

شبکه ها:
mern_network:
راننده: پل

حجم ها:
داده های مونگو:
درایور: local # Persist MongoDB data به صورت محلی

Docker Compose را اجرا کنید

در پوشه اصلی پروژه، اجرا کنید:
`bash
docker-compose up -d
`

این تنظیمات باید یک برنامه کاملاً کاربردی MERN را ارائه دهد که در Docker اجرا می شود!

اگر به مشکلی برخورد کردید یا اگر می‌خواهید جزئیات بیشتری در مورد بخش‌های خاصی از این فرآیند داشته باشید، به من اطلاع دهید.

دسترسی به خدمات خود:

Frontend: http://localhost:3000

Backend: http://localhost:5000

MongoDB برای کانتینر backend در دسترس است database:27017.

اتصال بین خدمات را بررسی کنید
تایید کنید که:

فرانت اند می تواند درخواست ها را به باطن ارسال کند.
باطن با استفاده از به MongoDB متصل می شود MONGO_URI.

کانتینرها را مدیریت و متوقف کنید

برای توقف ظروف، فشار دهید Ctrl + C.
برای توقف و حذف کانتینرها، شبکه‌ها و حجم‌های ایجاد شده توسط docker-compose up، اجرا کنید:
`bash
docker-compose down
`

مرحله 3: تمیز کردن محیط Docker خود (اختیاری)
پس از اتمام کار با برنامه، می توانید محیط های docker خود را با استفاده از هر یک از این دستورات پاکسازی کنید:

`bash
docker image prune -f
`

این دستور تمام تصاویر استفاده نشده را حذف می کند.

`bash
docker container prune -f
`

این دستور تمام کانتینرهای استفاده نشده را حذف می کند.

`bash
docker network prune -f
`

این دستور تمام شبکه های استفاده نشده را حذف می کند.

`bash
docker compose down –volumes
`

این دستور حجم های مرتبط را حذف می کند و فضای دیسک را آزاد می کند.

`bash
docker system prune -f
`

این دستور همه منابع استفاده نشده را به یکباره حذف می کند.

توجه: پرچم -f حذف را بدون درخواست تأیید مجبور می کند. از آن با احتیاط استفاده کنید، زیرا بدون تایید منابع را حذف می کند.
با دنبال کردن این مراحل و استفاده از دستورات مناسب، می توانید به طور موثر محیط Docker خود را تمیز کرده و آن را مرتب نگه دارید.

ملاحظات اضافی

متغیرهای محیطی: در تولید باید از Docker Secrets یا فایل‌های متغیر محیطی (.env) برای مدیریت داده های حساس مانند اعتبار پایگاه داده.
مقیاس‌بندی: می‌توانید خدمات (مانند باطن) را با تغییر دادن خدمات خود مقیاس‌بندی کنید docker-compose.yml:
`yaml
backend:

deploy:
replicas: 3
`

ساخت‌های چند مرحله‌ای: برای تنظیمات پیچیده‌تر، از ساخت‌های چند مرحله‌ای در Dockerfiles خود استفاده کنید تا اندازه تصاویر Docker خود را بهینه کنید.

نتیجه گیری
با پیروی از این راهنما، اکنون یک برنامه وب سه لایه کاملاً Docker شده دارید که قسمت جلو، باطن و پایگاه داده در کانتینرهای مجزا اجرا می شود و همه از طریق Docker Compose به هم متصل هستند. با استفاده از این راه‌اندازی، می‌توانید به راحتی برنامه خود را مقیاس‌بندی، اشتراک‌گذاری و استقرار دهید.

در اینجا یک راهنمای گام به گام برای کانتینر کردن برنامه MERN کامل استک، ابتدا هر جزء پشته به صورت محلی و سپس انتقال به Docker Compose آورده شده است.

مرحله 1: مخزن GitHub خود را کلون کنید و به دایرکتوری های محلی بروید

  1. مخزن GitHub خود را کلون کنید: کد خود را مانند شکل زیر از مخزن github خود کپی کنید

github

Go to your terminal and run:
bash
git clone https://github.com/Uwadon1/dockerize-a-mern-stack-app.git

gitclone

در مرحله بعد باید به دایرکتوری جدید شبیه سازی شده بروید

سی دی dockerize-a-mern-stack-app

  1. بررسی ساختار دایرکتوری: مطمئن شوید که پوشه های پروژه شما دارای Frontend/Web-tier، Backend/app-lier و پایگاه داده هستند. اگر چنین است، مجموعه نهایی ما به احتمال زیاد شبیه این خواهد بود، لطفاً توجه داشته باشید زیرا ما پایگاه داده خود را مستقیماً از باطن اجرا می کنیم: `
    project-directory/ ├── frontend/ ├── backend/ ├── database/ └── docker-compose.yml (این بعدا ایجاد خواهد شد)

بهترین روش ها: استفاده از یک فایل .dockerignore را برای حذف فایل های غیر ضروری از تصویر در نظر بگیرید.

مرحله 2: برای هر کامپوننت پشته Dockerfiles ایجاد کنید

  1. Frontend (React)
    • حرکت به frontend پوشه و ایجاد یک Dockerfile:

Dockerfile
# Dockerfile برای frontend

از تصویر رسمی به عنوان تصویر والدین استفاده کنید
توضیحات: Dockerfile برای سمت مشتری برنامه پشته MERN

از تصویر رسمی به عنوان تصویر والدین استفاده کنید

FROM node:18.9.1

دایرکتوری کاری را تنظیم کنید

WORKDIR / برنامه

فایل را از هاست خود در مکان فعلی خود کپی کنید

COPY package.json .

دستور را در داخل فایل سیستم تصویری خود اجرا کنید

نصب npm را اجرا کنید

به Docker اطلاع دهید که کانتینر در حال گوش دادن به پورت مشخص شده در زمان اجرا است

EXPOSE 5173

بقیه کد منبع برنامه خود را از میزبان خود در سیستم فایل تصویری خود کپی کنید

کپی کنید. .

دستور مشخص شده را در داخل کانتینر اجرا کنید

CMD [“npm”, “run”, “dev”]

Frontend Dockerfile

  • توضیح: این Dockerfile وابستگی ها را نصب می کند، کد فرانت اند را می سازد و استفاده می کند serve برای میزبانی فایل های استاتیک Dockerfile Breakdown این Dockerfile با استفاده از محیط Node.js یک تصویر محفظه برای یک برنامه React frontend می سازد. بیایید هر خط را بشکنیم:
    1. FROM node:18.9.1: این خط تصویر پایه کانتینر را مشخص می کند. node:18.9.1 نشان می دهد که ما از تصویر رسمی Node.js 18.9.1 به عنوان نقطه شروع استفاده می کنیم.
    2. WORKDIR /app: این دایرکتوری کاری درون کانتینر را روی /app تنظیم می کند. اینجاست که تمام دستورات بعدی اجرا می شود.
    3. COPY package.json .: این فایل package.json را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این فایل شامل وابستگی ها و پیکربندی پروژه است.
    4. RUN npm install: دستور npm install را در کانتینر اجرا می کند تا تمام وابستگی های فهرست شده در فایل package.json را نصب کند.
    5. EXPOSE 5173: به Docker اطلاع می دهد که کانتینر به درگاه 5173 گوش می دهد. این پورت اغلب توسط سرورهای توسعه مانند Create React App استفاده می شود.
    6. کپی کنید. .: همه فایل ها و دایرکتوری های باقیمانده را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این شامل کد منبع برنامه React شما می شود.
    7. CMD [“npm”, “run”, “dev”]: دستور پیش فرضی را مشخص می کند که هنگام شروع کانتینر اجرا شود. در این حالت، اسکریپت dev تعریف شده در فایل package.json را اجرا می کند. این اسکریپت معمولاً سرور توسعه را برای برنامه React شما راه اندازی می کند.

ساخت و اجرای تصویر: برای ساختن تصویر داکر، از دستور زیر استفاده کنید:
ضربه شدید
docker build -t mern-frontend .

این دستور یک تصویر به نام mern-frontend بر اساس Dockerfile در فهرست فعلی ایجاد می کند. توجه: لطفاً قبل از ساختن تصویر docker خود مطمئن شوید که دسکتاپ docker شما اجرا می شود.
همانطور که در زیر نشان داده شده است، می بینید که تصویر جلویی ما با موفقیت ساخته شده است

ساخت تصویر Frontend

ساخت تصویر Frontend Dockerdesktop

قبل از اجرا، باید یک شبکه ایجاد کنیم تا کانتینرهای ما بتوانند به طور یکپارچه با یکدیگر ارتباط برقرار کنند. برای ایجاد شبکه docker خود، از موارد زیر استفاده می کنیم:
ضربه شدید
شبکه docker ایجاد mern

در مرحله بعد، ما باید کانتینر خود را اجرا کنیم، برای اجرای کانتینر خود از موارد زیر استفاده می کنیم:
ضربه شدید
docker run –name=frontend –network=mern -d -p 5173:5173 mern-frontend

این دستور یک کانتینر را بر اساس تصویر mern-frontend شروع می کند و پورت 5173 کانتینر را به پورت 5173 دستگاه میزبان شما نگاشت می کند. این به شما امکان می دهد به برنامه React خود در مرورگر http://localhost:5173 دسترسی داشته باشید.

برنامه Frontend

  1. Backend (Node.js & Express)

بهترین کار این است که همیشه ابتدا یک کانتینر پایگاه داده را راه اندازی کنید تا از خطا جلوگیری شود.
پایگاه داده (MongoDB)

  • برای MongoDB، شما نیازی به Dockerfile ندارید، زیرا MongoDB یک تصویر رسمی در Docker Hub دارد.

برای اجرای کانتینر پایگاه داده خود، از:
ضربه شدید
docker run –name=mongodb –network=mern -d -p 27017:27017 -v ~/opt/data:data/db mongo:latest

  • حرکت به backend پوشه و ایجاد یک Dockerfile:

    `dockerfile
    # Dockerfile برای Backend

FROM node:18.9.1

WORKDIR / برنامه

COPY package.json .

نصب npm را اجرا کنید

کپی کنید. .

EXPOSE 5050

CMD [“npm”, “start”]

Backend Dockerfile

  • توضیح: این سرویس باطن را برای گوش دادن به پورت 5000 و استفاده از آن تنظیم می کند npm start برای شروع Dockerfile Breakdown برای Backend این Dockerfile برای ایجاد یک تصویر کانتینر برای برنامه Backend Node.js طراحی شده است. بیایید هر خط را بشکنیم:
    1. FROM node:18.9.1: این خط تصویر پایه کانتینر را مشخص می کند. node:18.9.1 نشان می دهد که ما از تصویر رسمی Node.js 18.9.1 به عنوان نقطه شروع استفاده می کنیم.
    2. WORKDIR /app: دایرکتوری کاری درون کانتینر را روی /app تنظیم می کند. اینجاست که تمام دستورات بعدی اجرا می شود.
    3. COPY package.json .: فایل package.json را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این فایل شامل وابستگی ها و پیکربندی پروژه است.
    4. RUN npm install: دستور npm install را در کانتینر اجرا می کند تا تمام وابستگی های فهرست شده در فایل package.json را نصب کند.
    5. کپی کنید. .: همه فایل ها و دایرکتوری های باقیمانده را از دستگاه میزبان در پوشه /app در داخل ظرف کپی می کند. این شامل کد منبع برنامه کاربردی Node.js شما می شود.
    6. EXPOSE 5050: به Docker اطلاع می دهد که کانتینر به پورت 5050 گوش می دهد. این پورتی است که سرور Node.js شما به آن گوش می دهد.
    7. CMD [“npm”, “start”]: دستور پیش فرضی را مشخص می کند که هنگام شروع کانتینر اجرا شود. در این حالت، اسکریپت start تعریف شده در فایل package.json را اجرا می کند. این اسکریپت معمولا سرور Node.js شما را راه اندازی می کند. ساختن و اجرای تصویر: برای ساختن تصویر داکر، از دستور زیر استفاده می کنید: Bash docker build mern-backend .

این دستور یک تصویر به نام mern-backend بر اساس Dockerfile در فهرست فعلی ایجاد می کند.

ساخت تصویر باطن

تصویر Backend ساخت DockerDesktop

برای اجرای کانتینر، از:
ضربه شدید
docker run –name=backend –network=mern -d -p 5050:5050 mern-backend

این دستور یک کانتینر را بر اساس تصویر mern-backend شروع می کند و پورت 5050 کانتینر را به پورت 5050 دستگاه میزبان شما نگاشت می کند. این به شما امکان می دهد به برنامه باطن Node.js خود در http://localhost:5050 دسترسی داشته باشید.

توضیحات تصویر

کانتینرهای خود را ساخته‌ایم و پشته MERN خود را به صورت محلی مستقر کرده‌ایم، که واقعاً بهترین روش نیست، می‌خواهم نشان دهم چگونه می‌توانید همه دستورات را در یک فایل واحد و تنها با یک دستور اجرا کنید.:
ایجاد یک docker-compose.yml فایل

در دایرکتوری ریشه پروژه خود، a ایجاد کنید docker-compose.yml برای هماهنگ کردن همه خدمات با هم.

یامل
خدمات:
پیشانی:
ساخت: ./mern/frontend
پورت ها:
– “5173:5173”

شبکه ها:
-mern_network
محیط زیست:
REACT_APP_API_URL: http://backend:5050

باطن:
ساخت: ./mern/backend
پورت ها:
– “5050:5050”
شبکه ها:
-mern_network
محیط زیست:
MONGO_URI: mongodb://mongo:27017/mydatabase

بستگی_به:
– mongodb

mongodb:
تصویر: mongo: آخرین

پورت ها:
– “27017:27017”

شبکه ها:
-mern_network
حجم ها:
– mongo-data:/data/db

شبکه ها:
mern_network:
راننده: پل

حجم ها:
داده های مونگو:
درایور: local # Persist MongoDB data به صورت محلی

Docker Compose

Docker Compose2

Docker Compose را اجرا کنید

  1. در پوشه اصلی پروژه، اجرا کنید:
    `bash
    docker-compose up -d
    `

Docker Compose up

Docker Compose up2

این تنظیمات باید یک برنامه کاملاً کاربردی MERN را ارائه دهد که در Docker اجرا می شود!

اگر به مشکلی برخورد کردید یا اگر می‌خواهید جزئیات بیشتری در مورد بخش‌های خاصی از این فرآیند داشته باشید، به من اطلاع دهید.

  1. دسترسی به خدمات خود:
    • Frontend: http://localhost:3000
    • Backend: http://localhost:5000
    • MongoDB برای کانتینر backend در دسترس است database:27017.

اتصال بین خدمات را بررسی کنید
تایید کنید که:

  • فرانت اند می تواند درخواست ها را به باطن ارسال کند.
  • باطن با استفاده از به MongoDB متصل می شود MONGO_URI.

کانتینرها را مدیریت و متوقف کنید

  • برای توقف ظروف، فشار دهید Ctrl + C.
  • برای توقف و حذف کانتینرها، شبکه‌ها و حجم‌های ایجاد شده توسط docker-compose up، اجرا کنید:
    `bash
    docker-compose down
    `

مرحله 3: تمیز کردن محیط Docker خود (اختیاری)
پس از اتمام کار با برنامه، می توانید محیط های docker خود را با استفاده از هر یک از این دستورات پاکسازی کنید:

`bash
docker image prune -f
`

این دستور تمام تصاویر استفاده نشده را حذف می کند.

`bash
docker container prune -f
`

این دستور تمام کانتینرهای استفاده نشده را حذف می کند.

`bash
docker network prune -f
`

این دستور تمام شبکه های استفاده نشده را حذف می کند.

`bash
docker compose down –volumes
`

این دستور حجم های مرتبط را حذف می کند و فضای دیسک را آزاد می کند.

`bash
docker system prune -f
`

این دستور همه منابع استفاده نشده را به یکباره حذف می کند.

توجه: پرچم -f حذف را بدون درخواست تأیید مجبور می کند. از آن با احتیاط استفاده کنید، زیرا بدون تایید منابع را حذف می کند.
با دنبال کردن این مراحل و استفاده از دستورات مناسب، می توانید به طور موثر محیط Docker خود را تمیز کرده و آن را مرتب نگه دارید.

ملاحظات اضافی

  • متغیرهای محیطی: در تولید باید از Docker Secrets یا فایل‌های متغیر محیطی (.env) برای مدیریت داده های حساس مانند اعتبار پایگاه داده.
  • مقیاس‌بندی: می‌توانید خدمات (مانند باطن) را با تغییر دادن خدمات خود مقیاس‌بندی کنید docker-compose.yml:
    `yaml
    backend:
    ...
    deploy:
    replicas: 3
    `
  • ساخت‌های چند مرحله‌ای: برای تنظیمات پیچیده‌تر، از ساخت‌های چند مرحله‌ای در Dockerfiles خود استفاده کنید تا اندازه تصاویر Docker خود را بهینه کنید.

نتیجه گیری
با پیروی از این راهنما، اکنون یک برنامه وب سه لایه کاملاً Docker شده دارید که قسمت جلو، باطن و پایگاه داده در کانتینرهای مجزا اجرا می شود و همه از طریق Docker Compose به هم متصل هستند. با استفاده از این راه‌اندازی، می‌توانید به راحتی برنامه خود را مقیاس‌بندی، اشتراک‌گذاری و استقرار دهید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا