নীচের কনফিগারেশনটি স্প্রিং বুট প্রকল্পগুলিতে build.gradle ফাইলে প্রয়োজনীয়।
build.gradle
jar {
baseName = 'your-app'
version = version
}
springBoot {
buildInfo()
executable = true
mainClass = "com.shunya.App"
}
নির্বাহযোগ্য = সত্য
এটি ইউনিক্স সিস্টেমে সম্পূর্ণ নির্বাহযোগ্য জার তৈরি করা প্রয়োজন (সেন্টোস এবং উবুন্টু)
একটি .conf ফাইল তৈরি করুন
আপনি যদি কাস্টম জেভিএম বৈশিষ্ট্য বা স্প্রিং বুট অ্যাপ্লিকেশন চালানোর আর্গুমেন্ট কনফিগার করতে চান তবে আপনি স্প্রিং বুট অ্যাপ্লিকেশন নামের মতো একটি নাম দিয়ে একটি .conf ফাইল তৈরি করতে পারেন এবং এটি জার ফাইলের সাথে সমান্তরালে রাখতে পারেন।
আপনার-অ্যাপ.জারটি আপনার স্প্রিং বুট অ্যাপ্লিকেশনটির নাম তা বিবেচনা করে আপনি নিম্নলিখিত ফাইলটি তৈরি করতে পারেন।
JAVA_OPTS="-Xms64m -Xmx64m"
RUN_ARGS=--spring.profiles.active=prod
LOG_FOLDER=/custom/log/folder
এই কনফিগারেশনটি স্প্রিং বুট অ্যাপ্লিকেশনটির জন্য 64 এমবি র্যাম সেট করবে এবং প্রোড প্রোফাইল সক্রিয় করবে।
লিনাক্সে একটি নতুন ব্যবহারকারী তৈরি করুন
বর্ধিত সুরক্ষার জন্য আমাদের একটি পরিষেবা হিসাবে স্প্রিং বুট অ্যাপ্লিকেশন চালাতে একটি নির্দিষ্ট ব্যবহারকারী তৈরি করতে হবে।
একটি নতুন ব্যবহারকারী তৈরি করুন
sudo useradd -s /sbin/nologin springboot
উবুন্টু / ডেবিয়ানে উপরোক্ত কমান্ডটি নিম্নলিখিত হিসাবে পরিবর্তন করুন:
sudo useradd -s /usr/sbin/nologin springboot
পাসওয়ার্ড সেট করুন
sudo passwd springboot
এক্সিকিউটেবল ফাইলটির স্প্রিংবুট মালিক করুন
chown springboot:springboot your-app.jar
জার ফাইলের পরিবর্তন রোধ করুন
chmod 500 your-app.jar
এটি জারের অনুমতিগুলি কনফিগার করবে যাতে এটি লেখা যায় না এবং কেবল তার মালিকের স্প্রিংবুট দ্বারা পড়া বা সম্পাদন করা যায়।
আপনি পরিবর্তন অ্যাট্রিবিউট (চ্যাটার) কমান্ডটি ব্যবহার করে আপনার জার ফাইলটিকে অপরিবর্তনীয় হিসাবে বিকল্প হিসাবে তৈরি করতে পারেন।
sudo chattr +i your-app.jar
সংশ্লিষ্ট .conf ফাইলের জন্যও উপযুক্ত অনুমতি সেট করা উচিত। .conf- এর জন্য রিড + এক্সিকিউটিভ (অক্টাল 500) অ্যাক্সেসের পরিবর্তে কেবল পঠন অ্যাক্সেস (অক্টাল 400) প্রয়োজন
chmod 400 your-app.conf
সিস্টেমড সার্ভিস তৈরি করুন
/etc/systemd/system/your-app.service
[Unit]
Description=Your app description
After=syslog.target
[Service]
User=springboot
ExecStart=/var/myapp/your-app.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
ওএস দ্বারা হত্যা হয়ে গেলে প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনরায় চালু করুন
ব্যর্থতার পরে প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পুনঃসূচনা করতে নীচের দুটি বৈশিষ্ট্য (পুনঃসূচনা এবং পুনরায় সূচনা) যুক্ত করুন।
/etc/systemd/system/your-app.service
[Service]
User=springboot
ExecStart=/var/myapp/your-app.jar
SuccessExitStatus=143
Restart=always
RestartSec=30
পরিবর্তনটি 30 সেকেন্ডের বিলম্বের সাথে ব্যর্থতার ক্ষেত্রে স্প্রিং বুট অ্যাপ্লিকেশনটিকে পুনরায় চালু করবে। যদি আপনি systemctl কমান্ড ব্যবহার করে পরিষেবাটি বন্ধ করেন তবে পুনরায় আরম্ভ হবে না।
সিস্টেম স্টার্টআপে সময়সূচী পরিষেবা
সিস্টেম বুটে স্বয়ংক্রিয়ভাবে শুরু করতে অ্যাপ্লিকেশনটিকে ফ্ল্যাগ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
সিস্টেমের শুরুতে স্প্রিং বুট অ্যাপ্লিকেশন সক্ষম করুন
sudo systemctl enable your-app.service
পরিষেবা বন্ধ করুন
প্রক্রিয়াটি শুরু করতে এবং থামাতে সিস্টেমেটেক্ট উবুন্টু 16.04 এলটিএস এবং 18.04 এলটিএসে ব্যবহার করা যেতে পারে।
প্রক্রিয়া শুরু করুন
sudo systemctl start your-app
প্রক্রিয়া বন্ধ করুন
sudo systemctl stop your-app
তথ্যসূত্র
https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html