Custom Build Process OpenShift-এ এমন একটি বিল্ড কৌশল, যা ডেভেলপারদের কাস্টমাইজড Build প্রক্রিয়া তৈরি করার সুযোগ দেয়। Custom Build ব্যবহার করে আপনি সম্পূর্ণ Build প্রক্রিয়ার ওপর পূর্ণ নিয়ন্ত্রণ পেতে পারেন এবং কাস্টম স্ক্রিপ্ট বা টুল ব্যবহার করে নির্দিষ্ট বিল্ড স্টেপ এবং কনফিগারেশন সংযুক্ত করতে পারেন। এটি সাধারণত ব্যবহৃত হয় যখন আপনার Build প্রক্রিয়াটি S2I বা Docker Build স্ট্রাটেজির চেয়ে জটিল বা কাস্টম প্রয়োজন।
Custom Build Process কিভাবে কাজ করে?
- BuildConfig ব্যবহার করে Custom Build কনফিগার করা হয়।
- Build প্রক্রিয়া শুরু হলে, OpenShift একটি বিল্ড পড তৈরি করে এবং আপনি যে কাস্টম বিল্ড স্টেপ নির্ধারণ করেছেন, সেই অনুযায়ী প্রক্রিয়াটি সম্পন্ন হয়।
- Custom Build স্ক্রিপ্ট ব্যবহার করে কোড প্যাকেজ করা, কনফিগারেশন সংযুক্ত করা, নির্দিষ্ট ডিপেন্ডেন্সি ইনস্টল করা, এবং কন্টেইনার ইমেজ তৈরি করা হয়।
- Custom Build শেষ হলে, ইমেজটি OpenShift ইমেজ রেজিস্ট্রিতে পুশ করা হয়।
Custom Build Process-এর উদাহরণ
ধরা যাক, আপনার একটি অ্যাপ্লিকেশন আছে যা একটি বিশেষ প্রক্রিয়া ব্যবহার করে বিল্ড করতে হয় এবং এটি S2I বা Docker Build কৌশলে সহজে করা যায় না। এক্ষেত্রে, Custom Build Process ব্যবহার করে বিল্ড কনফিগার করা যাবে।
নিচে একটি Custom Build Configuration এবং প্রয়োজনীয় কাস্টম স্ক্রিপ্টের উদাহরণ দেওয়া হলো।
Custom Build Configuration-এর YAML ফাইল:
apiVersion: build.openshift.io/v1
kind: BuildConfig
metadata:
name: custom-app-build
spec:
source:
type: Git
git:
uri: "https://github.com/username/custom-app-repo.git"
contextDir: /
strategy:
type: Custom
customStrategy:
from:
kind: DockerImage
name: "openshift/custom-builder:latest"
env:
- name: BUILD_SCRIPT
value: "/tmp/build.sh"
output:
to:
kind: ImageStreamTag
name: "custom-app:latest"
ব্যাখ্যা:
- source: সোর্স কোডটি একটি Git রিপোজিটরি থেকে আসে।
- strategy: এখানে
Customস্ট্রাটেজি ব্যবহার করা হয়েছে এবং একটি কাস্টম ডকার ইমেজ (openshift/custom-builder:latest) নির্দিষ্ট করা হয়েছে, যা বিল্ডার ইমেজ হিসেবে কাজ করবে। - env:
BUILD_SCRIPTনামে একটি এনভায়রনমেন্ট ভ্যারিয়েবল সেট করা হয়েছে, যা বিল্ড পডে রান করা কাস্টম স্ক্রিপ্ট (/tmp/build.sh) নির্দেশ করে। - output: Build প্রক্রিয়ার আউটপুট হিসেবে একটি Image Stream ট্যাগে (custom-app) ইমেজ সংরক্ষণ করা হয়েছে।
কাস্টম বিল্ড স্ক্রিপ্ট (build.sh):
#!/bin/bash
set -e
echo "Starting custom build process..."
# Clone the repository
git clone $SOURCE_REPOSITORY /tmp/source
# Change to the application directory
cd /tmp/source
# Install dependencies and build the application
echo "Installing dependencies..."
npm install
echo "Building the application..."
npm run build
# Create a Docker image
echo "Building Docker image..."
docker build -t $OUTPUT_REGISTRY/$OUTPUT_IMAGE .
# Push the Docker image to the registry
echo "Pushing Docker image to registry..."
docker push $OUTPUT_REGISTRY/$OUTPUT_IMAGE
echo "Custom build process completed."
ব্যাখ্যা:
- git clone: এটি সোর্স কোড ক্লোন করে
/tmp/sourceডিরেক্টরিতে নিয়ে আসে। - npm install এবং npm run build: অ্যাপ্লিকেশনের ডিপেন্ডেন্সি ইনস্টল এবং বিল্ড প্রক্রিয়া সম্পন্ন করে।
- docker build এবং docker push: কাস্টম Docker ইমেজ তৈরি করে এবং তা রেজিস্ট্রিতে পুশ করে।
Custom Build Process শুরু করা
Build Configuration তৈরি হলে, oc CLI ব্যবহার করে Build শুরু করা যায়:
oc start-build custom-app-build
এই কমান্ডটি Custom Build প্রক্রিয়া শুরু করবে এবং বিল্ড পড তৈরি করে কাস্টম স্ক্রিপ্ট (build.sh) রান করবে। Build শেষ হলে, ইমেজটি OpenShift ইমেজ রেজিস্ট্রিতে পুশ করা হবে।
Custom Build-এর সুবিধা
পূর্ণ নিয়ন্ত্রণ:
- Custom Build প্রক্রিয়া আপনাকে সম্পূর্ণ বিল্ড স্টেপ এবং কনফিগারেশন নির্ধারণ করার সুযোগ দেয়, যা বিশেষ কনফিগারেশন বা কাস্টম বিল্ড প্রয়োজন হলে কার্যকর।
কাস্টম স্ক্রিপ্টিং এবং অটোমেশন:
- Custom Build-এ আপনি যেকোনো স্ক্রিপ্ট বা টুল ব্যবহার করতে পারেন, যেমন
bashস্ক্রিপ্ট,Pythonস্ক্রিপ্ট, বা অন্য কোনো অটোমেশন টুল।
বিশেষ অ্যাপ্লিকেশন বিল্ড প্রক্রিয়া:
- যদি আপনার অ্যাপ্লিকেশনটির জন্য বিশেষ ধরনের Build প্রক্রিয়া প্রয়োজন হয়, যা S2I বা Docker Build কৌশলে করা যায় না, তখন Custom Build উপযুক্ত।
Custom Build-এর সীমাবদ্ধতা
- জটিলতা:
- Custom Build S2I বা Docker Build-এর চেয়ে জটিল হতে পারে, কারণ এটি সম্পূর্ণভাবে কাস্টমাইজড, তাই ডেভেলপারদের বিল্ড প্রক্রিয়ার ওপর অভিজ্ঞতা থাকতে হবে।
- ম্যানুয়াল কনফিগারেশন:
- Custom Build প্রক্রিয়াতে ম্যানুয়ালি কনফিগারেশন সেট করতে হয়, যা কিছু ক্ষেত্রে সময়সাপেক্ষ হতে পারে।
Custom Build Process-এর ব্যবহারিক পরিস্থিতি
- প্রয়োজনীয় লাইব্রেরি বা ডিপেন্ডেন্সি ইন্সটল করা: যদি আপনার অ্যাপ্লিকেশন বিল্ড প্রক্রিয়ায় বিশেষ ডিপেন্ডেন্সি বা লাইব্রেরি প্রয়োজন হয়, তখন Custom Build ব্যবহার করা যেতে পারে।
- কাস্টম স্ক্রিপ্টিং: Custom Build কাস্টম স্ক্রিপ্টিং এবং অটোমেশন টুলস ব্যবহার করে বিল্ড প্রক্রিয়াকে আরও উন্নত করতে পারে।
- মাল্টি-স্টেপ বিল্ড প্রক্রিয়া: যদি আপনার বিল্ড প্রক্রিয়া অনেক ধাপে সম্পন্ন হয় এবং প্রতিটি ধাপে আলাদা কনফিগারেশন প্রয়োজন হয়, তাহলে Custom Build সেরা উপায় হতে পারে।
সংক্ষেপে
Custom Build Process OpenShift-এ একটি কাস্টমাইজড Build প্রক্রিয়া তৈরি করার সুযোগ দেয়, যা ডেভেলপারদের জন্য বিশেষ বিল্ড প্রক্রিয়া বা কনফিগারেশন সেট করার ক্ষেত্রে উপযোগী। এটি কাস্টম স্ক্রিপ্ট, টুল, এবং অটোমেশন ব্যবহার করে সম্পূর্ণ বিল্ড প্রক্রিয়াকে ম্যানেজ করতে দেয়, যা স্ট্যান্ডার্ড Build কৌশলের চেয়ে বেশি ফ্লেক্সিবল এবং কাস্টমাইজেবল।
Read more