स्प्रिंग बूट प्रोजेक्ट्स में build.gradle फ़ाइल में निम्न कॉन्फ़िगरेशन आवश्यक है।
build.gradle
jar {
baseName = 'your-app'
version = version
}
springBoot {
buildInfo()
executable = true
mainClass = "com.shunya.App"
}
निष्पादन योग्य = सत्य
यह यूनिक्स प्रणाली (Centos और Ubuntu) पर पूरी तरह से निष्पादन योग्य जार बनाने के लिए आवश्यक है
एक .conf फ़ाइल बनाएँ
यदि आप कस्टम JVM प्रॉपर्टीज़ या स्प्रिंग बूट एप्लिकेशन रन तर्क को कॉन्फ़िगर करना चाहते हैं, तो आप स्प्रिंग बूट एप्लिकेशन नाम के समान .conf फ़ाइल बना सकते हैं और इसे जार फ़ाइल के समानांतर रख सकते हैं।
यह देखते हुए कि आपका app.jar आपके स्प्रिंग बूट एप्लिकेशन का नाम है, तो आप निम्न फ़ाइल बना सकते हैं।
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
यह जार की अनुमतियों को कॉन्फ़िगर करेगा ताकि इसे लिखा न जा सके और इसे केवल इसके मालिक स्प्रिंगबूट द्वारा पढ़ा या निष्पादित किया जा सके।
आप वैकल्पिक रूप से अपनी जार फ़ाइल को परिवर्तन विशेषता (chattr) कमांड का उपयोग करके अपरिवर्तनीय बना सकते हैं।
sudo chattr +i your-app.jar
उपयुक्त .conf फ़ाइल के लिए भी उपयुक्त अनुमतियाँ सेट की जानी चाहिए। .conf को read + execute (Octal 500) एक्सेस के बजाय सिर्फ रीड एक्सेस (ऑक्टल 400) की आवश्यकता होती है
chmod 400 your-app.conf
Systemd सेवा बनाएँ
/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
सेवा बंद करो
systemctl का उपयोग Ubuntu 16.04 LTS और 18.04 LTS में प्रक्रिया शुरू करने और रोकने के लिए किया जा सकता है।
प्रक्रिया शुरू करें
sudo systemctl start your-app
प्रक्रिया को रोकें
sudo systemctl stop your-app
संदर्भ
https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html