আমরা একটি স্প্রিং বুট ওয়েব অ্যাপে কাজ করছি এবং আমরা যে ডেটাবেসটি ব্যবহার করছি তা হ'ল মাই এসকিএল ;
আমাদের সেটআপটি হ'ল আমরা প্রথমে স্থানীয়ভাবে এটি পরীক্ষা করি (এর অর্থ আমাদের পিসিতে মাইএসকিএল ইনস্টল করা দরকার);
তারপরে আমরা বিটবাকেটে ঠেকি ;
জেনকিনস স্বয়ংক্রিয়ভাবে বিটবকেটের নতুন ধাক্কাটি সনাক্ত করে এবং এটির উপর একটি বিল্ড তৈরি করে (জেনকিনস এমভিএন বিল্ড পাস করার জন্য আমাদের জেনকিনস চলমান ভার্চুয়াল মেশিনে মাইএসকিউএলও ইনস্টল করতে হবে)।
যদি জেনকিন্স বিল্ড পাসের আমরা আমাদের আবেদন কোড ধাক্কা OpenShift এর (জেনকিন্স উপর OpenShift স্থাপনার প্লাগইন ব্যবহার করে)।
আপনি যে সমস্যাটি ইতিমধ্যে এটি অনুধাবন করতে পেরেছেন তা হ'ল:
মধ্যে
application.properties
আমরা হার্ড কোড মাইএসকিউএল তথ্য পারেন। যেহেতু আমাদের প্রকল্পটি 3 টি পৃথক স্থানে চলবে ( স্থানীয় , জেনকিনস এবং ওপেনশিফ্ট ) আমাদের ডাটাসোর্স ফিল্ডটিকে গতিশীল করতে হবেapplication.properties
(আমরা জানি যে এটি করার বিভিন্ন উপায় রয়েছে তবে আমরা আপাতত এই সমাধানে কাজ করছি)।spring.datasource.url = spring.datasource.username = spring.datasource.password =
আমরা যে সমাধানটি নিয়ে এসেছি তা হ'ল আমরা স্থানীয়ভাবে এবং জেনকিন্স ভিএম-তে সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলগুলি তৈরি করি (ওপেনশিফ্টের নামগুলি তাদের একই নামকরণ করে) এবং যথাক্রমে সঠিক মান নির্ধারণ করে:
export OPENSHIFT_MYSQL_DB_HOST="jdbc:mysql://localhost"
export OPENSHIFT_MYSQL_DB_PORT="3306"
export OPENSHIFT_MYSQL_DB_USERNAME="root"
export OPENSHIFT_MYSQL_DB_PASSWORD="123asd"
আমরা এটি করেছি এবং এটি কাজ করে। আমরা এগুলিও পরীক্ষা করে দেখেছি Map<String, String> env = System.getenv();
যে পরিবেশের ভেরিয়েবলগুলি জাভা ভেরিয়েবলগুলিতে তৈরি করা যেতে পারে:
String password = env.get("OPENSHIFT_MYSQL_DB_PASSWORD");
String userName = env.get("OPENSHIFT_MYSQL_DB_USERNAME");
String sqlURL = env.get("OPENSHIFT_MYSQL_DB_HOST");
String sqlPort = env.get("OPENSHIFT_MYSQL_DB_PORT");
এখন কেবল আমাদের কাছে এই জাভা ভেরিয়েবলগুলি ব্যবহার করা দরকার application.properties
এবং এটিই আমরা সমস্যায় পড়ছি।
ফোল্ডার, এবং কিভাবে আমরা দায়িত্ব অর্পণ করতে হবে password
, userName
, sqlURL
, এবং sqlPort
জন্য ভেরিয়েবল application.properties
তাদের দেখতে পাবে এবং কিভাবে আমরা তাদের অন্তর্ভুক্ত নাapplication.properties
?
এর মধ্যে অন্যতম হ'ল আমরা অনেকগুলি বিষয় চেষ্টা করেছি:
spring.datasource.url = ${sqlURL}:${sqlPort}/"nameofDB"
spring.datasource.username = ${userName}
spring.datasource.password = ${password}
এখনও ভাগ্য নেই। আমরা সম্ভবত এই এনভির ভেরিয়েবলগুলি সঠিক বর্গ / ফোল্ডারে রাখছি না বা এগুলি ভুলভাবে ব্যবহার করছিapplication.properties
।
আপনার সাহায্য অত্যন্ত প্রশংসা করা হয় !!
ধন্যবাদ!