Node.js Deployment

Node.js

বিতরণের ভূমিকা

ডেলিভারি কৌশলগুলি উত্পাদনে আপনার Node.js অ্যাপ্লিকেশনগুলি কীভাবে বিতরণ এবং পরিচালনা করতে হয় তার উপর ফোকাস করে৷

একটি আধুনিক Node.js বিতরণের মূল বৈশিষ্ট্য:

ঘনীভবন

আপনার অ্যাপ্লিকেশন এবং নির্ভরতাকে একটি পাত্রে প্যাকেজ করুন যা পরিবেশ জুড়ে নির্বিঘ্নে চলে

ইন্টিগ্রেশন

কুবারনেটস বা ডকার সোয়ার্মের মতো সরঞ্জামগুলির সাহায্যে স্বয়ংক্রিয় ধারক ব্যবস্থাপনা

CI/CD

স্বয়ংক্রিয় পরীক্ষা এবং বিতরণ পাইপলাইন

মেঘ-দেশীয়

ক্লাউড পরিষেবা এবং সার্ভারহীন অপারেশন ব্যবহার করুন

IaC

স্থিতিস্থাপক উত্পাদনশীলতা বিতরণের জন্য একটি প্রতীক হিসাবে অবকাঠামো সংজ্ঞায়িত করুন

নিরীক্ষণ করার ক্ষমতা

আপনার অ্যাপ্লিকেশনের কর্মক্ষমতা এবং স্বাস্থ্য নিরীক্ষণ

ডকারের সাথে কন্টেইনারাইজেশন

ধারকগুলি আপনার অ্যাপ্লিকেশন এবং এর নির্ভরতাগুলিকে একটি প্রমিত ইউনিটে প্যাকেজ করে, বিভিন্ন পরিবেশে সামঞ্জস্যপূর্ণ আচরণ নিশ্চিত করে।

Node.js অ্যাপ্লিকেশনের জন্য ডকার হল সবচেয়ে জনপ্রিয় কন্টেইনারাইজেশন প্ল্যাটফর্ম।

Node.js এর জন্য ডকারের সুবিধা

পরিবেশগত স্থায়িত্বউন্নয়ন, পরীক্ষা এবং উত্পাদন জুড়ে
হোস্ট কম্পিউটার এবং অন্যান্য অ্যাপ্লিকেশন থেকে বিচ্ছিন্নতা
ভার্চুয়াল মেশিনের তুলনায় দক্ষ সম্পদ ব্যবহার
সহজ স্কেলিং এবং ইন্টিগ্রেশন
সিআই/সিডি পাইপলাইনের সাথে সহজ ইন্টিগ্রেশন

একটি Node.js অ্যাপ্লিকেশন ডকারাইজ করা

উদাহরণ: Node.js-এর জন্য বেসিক ডকারফাইল

FROM node:20-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 8080

CMD ["node", "app.js"]

এই মৌলিক ডকারফাইল:

বেস ইমেজ নির্দিষ্ট করে (Node.js 20 সহ আলপাইন লিনাক্স)
কাজের ডিরেক্টরি সেট করে
নির্ভরতা অনুলিপি এবং ইনস্টল করা
অ্যাপ্লিকেশন কোড অনুলিপি করা হচ্ছে
একটি বন্দর উন্মুক্ত করে
স্টার্টআপ কমান্ড সংজ্ঞায়িত করে

আপনার ডকার কন্টেইনার কনফিগার করা এবং চালানো হচ্ছে

# Build the image
docker build -t my-nodejs-app .

# Run the container
docker run -p 8080:8080 my-nodejs-app

উন্নত ছবির জন্য মাল্টি-লেভেল আর্কিটেকচার

মাল্টি-লেভেল আর্কিটেকচার রানটাইম এনভায়রনমেন্ট থেকে কনফিগারেশন এনভায়রনমেন্টকে আলাদা করে ছোট, আরও সুরক্ষিত ছবি তৈরি করে:

উদাহরণ: মাল্টি-লেভেল ডকারফাইল

# Build stage
FROM node:20-alpine AS build

WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

# Production stage
FROM node:20-alpine

WORKDIR /app
COPY --from=build /app/node_modules ./node_modules
COPY . .

# Set NODE_ENV
ENV NODE_ENV=production

# Non-root user for security
USER node

EXPOSE 8080
CMD ["node", "app.js"]

কেন বহু-স্তরের কাঠামো?

ছোট ছবি(কোন বিল্ড টুল বা ডেভ নির্ভরতা নেই)
উন্নত নিরাপত্তা(কম সম্ভাব্য অসুবিধা)
দ্রুত কন্টেইনার লঞ্চ এবং বিতরণ

মাল্টি-কন্টেইনার অ্যাপ্লিকেশনের জন্য ডকার কম্পোজ

একাধিক পরিষেবা সহ অ্যাপ্লিকেশনগুলির জন্য (যেমন Node.js অ্যাপ্লিকেশন + ডাটাবেস), মাল্টি-কন্টেইনার অ্যাপ্লিকেশন সংজ্ঞায়িত এবং চালানোর জন্য ডকার কম্পোজ ব্যবহার করুন:

উদাহরণ: docker-compose.yml

version: '3.8'

services:
  # Node.js application
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - NODE_ENV=production
      - DB_HOST=db
      - DB_USER=user
      - DB_PASSWORD=password
      - DB_NAME=myapp
    depends_on:
      - db
    restart: unless-stopped

  # Database
  db:
    image: postgres:14
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=myapp
    restart: unless-stopped

volumes:
  postgres_data:
# Start all services
docker-compose up

# Start in detached mode
docker-compose up -d

# Stop all services
docker-compose down

ইন্টিগ্রেশন জন্য Kubernetes

কন্টেইনারাইজড অ্যাপ্লিকেশনগুলির উত্পাদন-গ্রেড একীকরণের জন্য, কুবারনেটস শক্তিশালী বৈশিষ্ট্যগুলি সরবরাহ করে:

স্বয়ংক্রিয় স্কেলিং

লোডের উপর ভিত্তি করে পাত্রের স্বয়ংক্রিয় স্কেলিং

স্ব-নিরাময়

ব্যর্থ কন্টেইনার পুনরায় চালু করা হচ্ছে

পরিষেবা আবিষ্কার এবং লোড ব্যালেন্সিং

রোলিং আপডেট এবং রোলব্যাক

স্টোরেজ একত্রীকরণ

Node.js-এর জন্য একটি মৌলিক Kubernetes বিতরণ

উদাহরণ: deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nodejs-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nodejs-app
  template:
    metadata:
      labels:
        app: nodejs-app
    spec:
      containers:
      - name: nodejs-app
        image: your-registry/nodejs-app:latest
        ports:
        - containerPort: 8080
        env:
        - name: NODE_ENV
          value: "production"
        resources:
          limits:
            cpu: "500m"
            memory: "512Mi"
          requests:
            cpu: "200m"
            memory: "256Mi"
        livenessProbe:
          httpGet:
            path: /health
            port: 8080
          initialDelaySeconds: 30
          periodSeconds: 10

Node.js-এর জন্য একটি Kubernetes পরিষেবা

উদাহরণ: service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nodejs-service
spec:
  selector:
    app: nodejs-app
  ports:
    - port: 80
      targetPort: 8080
  type: LoadBalancer

ক্লাউড সাইট ডেলিভারি

ক্লাউড প্ল্যাটফর্মগুলি ন্যূনতম কনফিগারেশন সহ Node.js অ্যাপ্লিকেশনগুলি বিতরণ করতে ব্যবহারের জন্য প্রস্তুত অবকাঠামো এবং পরিষেবা সরবরাহ করে। এই প্ল্যাটফর্মগুলি অবকাঠামো ব্যবস্থাপনার বেশিরভাগ জটিলতা দূর করে।

Node.js এর জন্য জনপ্রিয় ক্লাউড প্ল্যাটফর্ম

সাইট বৈশিষ্ট্য সেরা
Heroku Git , , দ্রুত প্রোটোটাইপিং, স্টার্টআপ, সহজ বিতরণ
AWS Elastic Beanstalk স্বয়ংক্রিয় স্কেলিং, লোড ব্যালেন্সিং, স্বাস্থ্য পর্যবেক্ষণ AWS পরিবেশ একীকরণ, এন্টারপ্রাইজ অ্যাপ্লিকেশন
Google App Engine স্বয়ংক্রিয় স্কেলিং, ট্রাফিক বিচ্ছেদ, ed গুগল ক্লাউড পরিবেশ, উচ্চ ট্রাফিক অ্যাপ্লিকেশন
Azure App Service অন্তর্নির্মিত CI/CD, স্টেজিং পরিবেশ, সহজ মাপযোগ্যতা মাইক্রোসফ্ট পরিবেশ, এন্টারপ্রাইজ অ্যাপ্লিকেশন
Vercel প্রিভিউ ডিস্ট্রিবিউশন, গ্লোবাল CDN, Next.js-এ আপগ্রেড করা হয়েছে ফ্রন্ট-এন্ড-ফোকাসড অ্যাপ্লিকেশন, JAMstack অ্যাপ্লিকেশন
DigitalOcean App Platform সহজ মূল্য, অন্তর্নির্মিত ট্র্যাকিং, স্বয়ংক্রিয় স্কেলিং ছোট থেকে মাঝারি অ্যাপ্লিকেশন, খরচ-সংবেদনশীল বিতরণ

উদাহরণ: হেরোকুতে স্থাপন করা

Heroku Node.js অ্যাপ্লিকেশনের জন্য সবচেয়ে সহজ স্থাপনার ওয়ার্কফ্লো প্রদান করে:

পূর্বশর্ত

# Install Heroku CLI
npm install -g heroku

# Login to Heroku
heroku login

হেরোকুকে কীভাবে আপনার অ্যাপ্লিকেশন চালাতে হয় তা জানাতে আপনার প্রকল্পের মূলে একটি প্রোফাইল তৈরি করুন:

Procfile

web: node app.js

আপনার অ্যাপ বিতরণ করুন:

# Initialize Git if needed
git init
git add .
git commit -m "Initial commit"

# Create a Heroku app
heroku create my-nodejs-app

# Deploy to Heroku
git push heroku main

# Scale your app (optional)
heroku ps:scale web=1

# Open your app in browser
heroku open

প্রসঙ্গ-নির্দিষ্ট কনফিগারেশন

যেকোনো ক্লাউড ডিস্ট্রিবিউশনের জন্য, নিশ্চিত করুন যে আপনার অ্যাপ্লিকেশনটি উৎপাদনের জন্য কনফিগার করা হয়েছে:

উদাহরণ: প্রসঙ্গ কাঠামো সহ app.js

const express = require('express');
const app = express();

// Environment variables with fallbacks
const PORT = process.env.PORT || 8080;
const NODE_ENV = process.env.NODE_ENV || 'development';
const DB_URI = process.env.DB_URI || 'mongodb://localhost:27017/myapp';

app.get('/', (req, res) => {
  res.send(`Hello from ${NODE_ENV} environment!`);
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT} in ${NODE_ENV} mode`);
});

সার্ভারহীন বিতরণ

সার্ভারহীন কম্পিউটিং আপনাকে সার্ভার সম্পর্কে চিন্তা না করেই অ্যাপ্লিকেশন তৈরি এবং চালানোর অনুমতি দেয়।

এটি স্বয়ংক্রিয় স্কেলিং, অন্তর্নির্মিত উচ্চ প্রাপ্যতা এবং একটি পে-অ্যাজ-ইউ-গো বিলিং মডেল অফার করে।

Node.js এর জন্য সার্ভারলেস এর সুবিধা

সার্ভার পরিচালনার প্রয়োজন নেই
চাহিদার উপর ভিত্তি করে স্বয়ংক্রিয় স্কেলিং
আপনি যা ব্যবহার করেন শুধুমাত্র তার জন্য অর্থ প্রদান করুন (কোন নিষ্ক্রিয় খরচ নেই)
অন্তর্নির্মিত উচ্চ প্রাপ্যতা এবং দোষ সহনশীলতা
কোডে ফোকাস করুন, পরিকাঠামো নয়

জনপ্রিয় সার্ভারহীন সাইট

AWS Lambda

Azure Functions

Google Cloud Functions

Vercel Functions

Netlify Functions

উদাহরণ: AWS Lambda ফাংশন

একটি সাধারণ AWS Lambda ফাংশন (handler.js)

module.exports.hello = async (event) => {
  const name = event.queryStringParameters?.name || 'World';

  return {
    statusCode: 200,
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(
      {
        message: `Hello, ${name}!`,
        timestamp: new Date().toISOString(),
      },
    ),
  };
};

উদাহরণ: সার্ভারহীন কনফিগারেশন কনফিগারেশন

একটি সার্ভারহীন আর্কিটেকচার ব্যবহার করে সার্ভারবিহীন অ্যাপ্লিকেশন বিতরণ এবং পরিচালনা করা সহজ করে তোলে:

serverless.yml

service: my-nodejs-api

provider:
  name: aws
  runtime: nodejs16.x
  region: us-east-1
  environment:
    NODE_ENV: production

functions:
  hello:
    handler: handler.hello
    events:
      - http:
          path: hello
          method: get
          cors: true

  getUser:
    handler: users.getUser
    events:
      - http:
          path: users/{id}
          method: get
          cors: true

সার্ভারহীন বিবেচনা:

কোল্ড স্টার্টস:প্রাথমিক অনুরোধ ল্যাগ যখন ফাংশনটি সম্প্রতি ব্যবহার করা হয়নি
সময় সীমা:অপারেশনগুলির সর্বাধিক প্রক্রিয়াকরণের সময় রয়েছে
অস্থিরতা:প্রতিটি কল বিচ্ছিন্ন; স্থিতির জন্য বাহ্যিক পরিষেবাগুলি ব্যবহার করুন
সীমিত স্থানীয় সম্পদ:মেমরি এবং ডিস্ক স্থান সীমাবদ্ধতা

Node.js অ্যাপ্লিকেশনের জন্য CI/CD

ক্রমাগত ইন্টিগ্রেশন এবং অবিচ্ছিন্ন ডেলিভারি (CI/CD) পাইপলাইনগুলি নির্ভরযোগ্য এবং সামঞ্জস্যপূর্ণ ডেলিভারি নিশ্চিত করে টেস্টিং এবং ডেলিভারি প্রক্রিয়া স্বয়ংক্রিয় করে।

একটি CI/CD পাইপলাইনের প্রধান উপাদান

উৎস নিয়ন্ত্রণ একীকরণ

গিটহাব, গিটল্যাব ইত্যাদি

স্বয়ংক্রিয় পরীক্ষা

ইউনিট, ইন্টিগ্রেশন, সম্পূর্ণ-নোড পরীক্ষা

স্ট্যান্ডার্ড সূচক বিশ্লেষণ এবং আস্তরণের

নিরাপত্তা স্ক্যানিং

গঠন এবং সংশ্লেষণ

স্টেজিং এবং উত্পাদন ডেলিভারি

উদাহরণ: গিটহাব অ্যাকশন ওয়ার্কফ্লো

.github/workflows/deploy.yml

name: Deploy Node.js Application

on:
  push:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16.x'
      - name: Install dependencies
        run: npm ci
      - name: Run tests
        run: npm test
      - name: Run linting
        run: npm run lint

  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Deploy to production
        uses: some-action/deploy-to-cloud@v1
        with:
          api-key: ${{ secrets.DEPLOY_API_KEY }}
          app-name: my-nodejs-app
          environment: production

কোড হিসাবে পরিকাঠামো (IaC)

IaC সরঞ্জামগুলি আপনাকে কোড ফাইলগুলিতে আপনার পরিকাঠামো সংজ্ঞায়িত করতে দেয়, সংস্করণ-নিয়ন্ত্রিত, পুনরুত্পাদনযোগ্য স্থাপনা প্রদান করে।

জনপ্রিয় IaC টুল

Terraform

একটি ক্লাউড-অজ্ঞেয়বাদী IaC টুল

AWS CloudFormation

AWS-নির্দিষ্ট IaC পরিষেবা

Azure Resource Manager

একটি Azure-নির্দিষ্ট IaC পরিষেবা

Pulumi

IaC পরিচিত প্রোগ্রামিং ভাষা ব্যবহার করে

উদাহরণ: টেরাফর্ম কনফিগারেশন

main.tf

provider "aws" {
  region = "us-east-1"
}

resource "aws_instance" "nodejs_server" {
  ami = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.micro"

  tags = {
    Name = "nodejs-app-server"
  }

  user_data = <<-EOF
    #!/bin/bash
    curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
    sudo apt-get install -y nodejs
    mkdir -p /app
    cd /app
    echo 'console.log("Hello from Node.js");' > app.js
    node app.js
    EOF
}

resource "aws_security_group" "app_sg" {
  name = "app-security-group"
  description = "Allow web traffic"

  ingress {
    from_port = 80
    to_port = 80
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  ingress {
    from_port = 22
    to_port = 22
    protocol = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }

  egress {
    from_port = 0
    to_port = 0
    protocol = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

Node.js এর সাথে এজ কম্পিউটিং

এজ কম্পিউটিং কম্পিউটেশন এবং ডেটা স্টোরেজকে যেখানে প্রয়োজন তার কাছাকাছি নিয়ে আসে, প্রতিক্রিয়ার সময় উন্নত করে এবং ব্যান্ডউইথের ব্যবহার কমায়।

Node.js - I/O .

Node.js-এর জন্য এজ কম্পিউটিং প্ল্যাটফর্ম

সাইট ব্যাখ্যা মূল বৈশিষ্ট্য
Vercel Edge Functions প্রান্তে সার্ভারহীন ক্রিয়াকলাপ বিতরণ করুন গ্লোবাল CDN, অতি-লো লেটেন্সি, বিল্ট-ইন ক্যাশে
Cloudflare Workers প্রান্তে সার্ভারহীন প্রক্রিয়াকরণ বিচ্ছিন্ন V8 উদাহরণ, 0ms কোল্ড বুট, 200+ অবস্থান
Fastly Compute@Edge এজ কম্পিউট প্ল্যাটফর্ম সাব-এমএস লেটেন্সি, ওয়েব অ্যাসেম্বলি সাপোর্ট, গ্লোবাল নেটওয়ার্ক
Deno Deploy জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্টের জন্য এজ রানটাইম V8-এ নির্মিত, বিশ্বব্যাপী বিতরণ করা, WebAssembly সমর্থন

উদাহরণ: Node.js এর সাথে Cloudflare Worker

worker.js

// Handle incoming requests
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
  // Get visitor's country from Cloudflare headers
  const country = request.cf.country || 'unknown';

  // Custom response based on location
  const html = `
    









    
    
      Edge Computing Demo
    
    
      

Hello from ${country}!

Served from ${new Date().toISOString()}

`; return new Response(html, { headers: { 'content-type': 'text/html;charset=UTF-8' }, }); }

উদাহরণ: Vercel Edge Middleware

middleware.js

import { NextResponse } from 'next/server';

// Runs on every request to your site
export function middleware(request) {
  // Get the user's country from the request
  const country = request.geo.country || 'US';

  // Rewrite to a country-specific page if needed
  if (country === 'GB') {
    return NextResponse.rewrite('/uk-home');
  }

  // Add a custom header
  const response = NextResponse.next();
  response.headers.set('x-edge-runtime', 'true');

  return response;
}

// Only run on specific paths
export const config = {
  matcher: ['/', '/about/:path*'],
};

এজ কম্পিউটিং ব্যবহারের ক্ষেত্রে

কর্মক্ষমতা

  • বিশ্বব্যাপী ব্যবহারকারীদের জন্য কম বিলম্বিতা
  • দ্রুত সামগ্রী বিতরণ
  • প্রথম বাইটের জন্য উন্নত সময় (TTFB)
  • দক্ষ ক্যাশিং কৌশল

ফাংশন

  • ব্যক্তিগতকৃত সামগ্রী বিতরণ
  • A/B পরীক্ষা এবং বৈশিষ্ট্য পতাকা
  • বট নিরাপত্তা এবং নিরাপত্তা
  • স্বীকৃতি এবং স্বীকৃতি

আধুনিক বিতরণের জন্য সর্বোত্তম অনুশীলন

শূন্য-ঢালু বিতরণ

নীল-সবুজ বা ক্যানারি ডেলিভারি কৌশল ব্যবহার করুন

কন্টেইনার নিরাপত্তা

ছবি স্ক্যান করুন, ন্যূনতম বেস ইমেজ ব্যবহার করুন এবং অ-রুট ব্যবহারকারী ব্যবহার করুন

পরিবেশ পরিবর্তনশীল

সমস্ত কনফিগারেশনের জন্য পরিবেশ ভেরিয়েবল ব্যবহার করুন

গোপনীয় ব্যবস্থাপনা

নিবেদিত গোপনীয়তা ব্যবস্থাপনা সমাধান ব্যবহার করুন

স্বাস্থ্য পরীক্ষা

ব্যাপক স্বাস্থ্য এবং প্রস্তুতি পরীক্ষা বাস্তবায়ন করুন

পর্যবেক্ষণ এবং রেকর্ডিং

সম্পূর্ণ পর্যবেক্ষণ এবং কেন্দ্রীভূত লগিং সেট আপ করুন

স্বয়ংক্রিয় স্কেলিং

লোড মেট্রিক্সের উপর ভিত্তি করে উপযুক্ত স্কেলিং নীতিগুলি কনফিগার করুন

ডাটাবেস মাইগ্রেশন

স্বয়ংক্রিয় এবং সংস্করণ ডাটাবেস স্কিমা পরিবর্তন

সারাংশ

একটি আধুনিক Node.js ডিস্ট্রিবিউশনের মধ্যে রয়েছে কন্টেইনারাইজেশন, ইন্টিগ্রেশন, ক্লাউড প্ল্যাটফর্ম, সার্ভারহীন কম্পিউটিং এবং DevOps অনুশীলন।

এই পন্থা অবলম্বন করে, আপনি অর্জন করতে পারেন:

দ্রুত এবং নির্ভরযোগ্য ডেলিভারি

উন্নত সম্পদ ব্যবহার এবং খরচ দক্ষতা

উন্নত মাপযোগ্যতা এবং নমনীয়তা

অটোমেশন মাধ্যমে উচ্চ উন্নয়ন গতি

💡ডেলিভারি কৌশলটি বেছে নিন যা আপনার আবেদনের চাহিদা, দলের দক্ষতা এবং ব্যবসার প্রয়োজনের সাথে সবচেয়ে ভালো মানায়।

অনুশীলন করুন

একটি ______ Node.js অ্যাপ্লিকেশন বিতরণের জন্য একটি ধারক চিত্র সংজ্ঞায়িত করে।

Dockerfile
✓ ঠিক আছে! একটি ডকারফাইল Node.js অ্যাপ্লিকেশন বিতরণের জন্য একটি ধারক চিত্র সংজ্ঞায়িত করে। এটি বেস ইমেজ, নির্ভরতা, কমান্ড এবং কনফিগারেশন ধাপ নির্দিষ্ট করে।
package.json
✗ ভুল! package.json Node.js প্রকল্পের মেটাডেটা এবং নির্ভরতা সংজ্ঞায়িত করে, কিন্তু কন্টেইনার ইমেজ নয়।
docker-compose.yml
✗ ভুল! docker-compose.yml মাল্টি-কন্টেইনার অ্যাপ্লিকেশন সংজ্ঞায়িত করে, কিন্তু ডকারফাইল পৃথক কন্টেইনার চিত্রকে সংজ্ঞায়িত করে।
deployment.yaml
✗ ভুল! deployment.yaml কুবারনেটস ডিস্ট্রিবিউশনকে সংজ্ঞায়িত করে, কিন্তু ডকারফাইল কনটেইনার ইমেজকে সংজ্ঞায়িত করে।