Docker এর মাধ্যমে GraphQL অ্যাপ্লিকেশন ডেপ্লয়মেন্ট

GraphQL এবং DevOps Integration - গ্রাফকিউএল (GraphQL) - Web Development

206

Docker হল একটি শক্তিশালী টুল যা ডেভেলপারদের পরিবেশের মধ্যে একক এবং নিরাপদভাবে অ্যাপ্লিকেশন চালানোর সুযোগ প্রদান করে। GraphQL অ্যাপ্লিকেশন এর ডেপ্লয়মেন্ট Docker কন্টেইনারের মাধ্যমে খুবই সুবিধাজনক এবং সোজা, কারণ এটি অ্যাপ্লিকেশনকে নির্দিষ্ট পরিবেশে প্যাকেজ করে এবং ডেভেলপাররা সহজে একে একাধিক সিস্টেমে রান করতে পারেন।

এখানে আমরা Docker ব্যবহার করে একটি GraphQL অ্যাপ্লিকেশন ডেপ্লয়মেন্টের প্রক্রিয়া আলোচনা করব।


ধাপ ১: GraphQL অ্যাপ্লিকেশন তৈরি করা

ধরা যাক, আমাদের একটি সিম্পল Apollo Server ব্যবহার করা GraphQL অ্যাপ্লিকেশন রয়েছে। আমাদের প্রথমে এই অ্যাপ্লিকেশন তৈরি করতে হবে।

1.1: Apollo Server Setup

  1. প্রথমে, প্রয়োজনীয় প্যাকেজ ইন্সটল করুন:
npm init -y
npm install apollo-server graphql
  1. index.js ফাইলে একটি সিম্পল Apollo Server তৈরি করুন:
const { ApolloServer, gql } = require('apollo-server');

// GraphQL Schema
const typeDefs = gql`
  type Query {
    hello: String
  }
`;

// Resolvers
const resolvers = {
  Query: {
    hello: () => 'Hello, World!',
  },
};

// Apollo Server setup
const server = new ApolloServer({ typeDefs, resolvers });

server.listen(4000).then(({ url }) => {
  console.log(`Server ready at ${url}`);
});

এখানে, আমরা একটি খুব সাধারণ GraphQL সার্ভার তৈরি করেছি, যা hello নামক একটি কুয়েরি রেজোলভ করবে এবং Hello, World! ফিরিয়ে দেবে।


ধাপ ২: Dockerfile তৈরি করা

Dockerfile হল একটি স্ক্রিপ্ট যা ডকার কন্টেইনার তৈরি করার জন্য নির্দেশাবলী দেয়। আমাদের GraphQL অ্যাপ্লিকেশনটি Docker কন্টেইনারে রান করার জন্য একটি Dockerfile তৈরি করতে হবে।

2.1: Dockerfile তৈরি করা

  1. আপনার প্রজেক্ট ডিরেক্টরির মধ্যে একটি Dockerfile ফাইল তৈরি করুন।
  2. নীচের কনটেন্ট যুক্ত করুন:
# Step 1: Use the official Node.js image
FROM node:14

# Step 2: Set the working directory in the container
WORKDIR /app

# Step 3: Copy package.json and package-lock.json to the container
COPY package.json package-lock.json ./

# Step 4: Install dependencies
RUN npm install

# Step 5: Copy the rest of the application code
COPY . .

# Step 6: Expose the port the app will run on
EXPOSE 4000

# Step 7: Start the application
CMD ["node", "index.js"]

Dockerfile ব্যাখ্যা:

  • FROM node:14: এই নির্দেশটি Node.js 14 সংস্করণের অফিসিয়াল Docker ইমেজ ব্যবহার করবে।
  • WORKDIR /app: কন্টেইনারে /app ডিরেক্টরি তৈরি করে এবং সেটি কাজ করার জন্য নির্বাচিত করে।
  • COPY package.json package-lock.json ./: এই স্টেপটি আপনার প্রজেক্টের package.json এবং package-lock.json কন্টেইনারে কপি করবে, যাতে ডিপেন্ডেন্সি ইনস্টল করা যায়।
  • RUN npm install: আপনার ডিপেন্ডেন্সি ইনস্টল করার জন্য।
  • COPY . .: এই স্টেপটি আপনার কোড কন্টেইনারে কপি করবে।
  • EXPOSE 4000: এই স্টেপটি কন্টেইনারে পোর্ট 4000 খুলবে, যেটি আপনার GraphQL অ্যাপ্লিকেশন রানে ব্যবহৃত হবে।
  • CMD ["node", "index.js"]: এই স্টেপটি কন্টেইনারের মধ্যে অ্যাপ্লিকেশন চালু করবে।

ধাপ ৩: Docker Image Build এবং Run করা

এখন আমরা Dockerfile তৈরি করেছি এবং আমাদের GraphQL অ্যাপ্লিকেশনকে কন্টেইনারে রান করার জন্য প্রস্তুত। নিচের ধাপগুলি অনুসরণ করুন:

3.1: Docker Image Build করা

Dockerfile ব্যবহার করে একটি Docker image তৈরি করতে নিচের কমান্ডটি রান করুন:

docker build -t graphql-app .

এখানে:

  • -t graphql-app: এটি আমাদের ইমেজের নাম graphql-app সেট করে।
  • .: বর্তমান ডিরেক্টরি থেকে Dockerfile ফাইলটি প্যাকেজ করবে।

3.2: Docker Image চালানো

আপনার তৈরি Docker ইমেজটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:

docker run -p 4000:4000 graphql-app

এখানে:

  • -p 4000:4000: এটি কন্টেইনারের পোর্ট 4000 কে আপনার হোস্ট মেশিনের পোর্ট 4000 এর সাথে ম্যাপ করবে।
  • graphql-app: এটি আপনার তৈরি Docker ইমেজ নাম।

এখন, আপনি আপনার ব্রাউজারে গিয়ে http://localhost:4000 এ অ্যাপ্লিকেশনটি দেখতে পারবেন, যেখানে গ্রাফকিউএল API রেডি থাকবে।


ধাপ ৪: Docker Compose ব্যবহার করে Multi-container Application Deployment

যদি আপনার অ্যাপ্লিকেশনের সাথে ডেটাবেস বা অন্যান্য সার্ভিস যুক্ত থাকে, তবে আপনি Docker Compose ব্যবহার করতে পারেন একাধিক কন্টেইনার একসাথে পরিচালনা করার জন্য।

4.1: Docker Compose File তৈরি করা

প্রজেক্ট ডিরেক্টরিতে একটি docker-compose.yml ফাইল তৈরি করুন এবং নিচের কনফিগারেশন যোগ করুন:

version: '3'

services:
  graphql-app:
    build: .
    ports:
      - "4000:4000"
    environment:
      - NODE_ENV=production

এখানে:

  • graphql-app: আমাদের GraphQL অ্যাপ্লিকেশন কন্টেইনার।
  • build: .: এটি Dockerfile থেকে ইমেজ তৈরি করবে।
  • ports: এটি কন্টেইনারের পোর্ট 4000 হোস্টের পোর্ট 4000 এর সাথে ম্যাপ করবে।

4.2: Docker Compose ব্যবহার করে অ্যাপ্লিকেশন চালানো

নিচের কমান্ডটি চালিয়ে আপনার অ্যাপ্লিকেশনটি Docker Compose ব্যবহার করে চালু করুন:

docker-compose up --build

এটি Dockerfile এবং docker-compose.yml এর কনফিগারেশন অনুযায়ী অ্যাপ্লিকেশনটি তৈরি এবং চালু করবে।


ধাপ ৫: Docker Container এর মধ্যে Application Logs দেখা

যেহেতু আমরা অ্যাপ্লিকেশন কন্টেইনারে চালাচ্ছি, তাই কন্টেইনারের লোগস দেখতে নিচের কমান্ডটি ব্যবহার করা যাবে:

docker logs <container_id>

এখানে, <container_id> আপনার চলমান কন্টেইনারের ID হবে, যা আপনি docker ps কমান্ড দিয়ে পেতে পারেন।


সারাংশ

GraphQL অ্যাপ্লিকেশন ডেপ্লয়মেন্ট Docker এর মাধ্যমে একটি সুবিধাজনক এবং স্কেলেবল পদ্ধতি। Docker ব্যবহার করে আপনি একটি সম্পূর্ণ সিস্টেম, তার সমস্ত ডিপেন্ডেন্সি সহ, কন্টেইনারে প্যাকেজ করে একাধিক পরিবেশে (যেমন ডেভেলপমেন্ট, প্রোডাকশন) চালাতে পারেন। Docker Compose ব্যবহার করে আপনি একাধিক সার্ভিস (যেমন ডেটাবেস) একত্রে ডেপ্লয় করতে পারেন এবং সিস্টেমটি সহজে পরিচালনা করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...