JavaRush /جاوا بلاگ /Random-SD /اسان ايپليڪيشن لڳائڻ تي عمل ڪندا آهيون - "جاوا پروجيڪٽ A ...

اسان ايپليڪيشن لڳائڻ تي عمل ڪندا آهيون - "جاوا پروجيڪٽ A کان Z تائين"

گروپ ۾ شايع ٿيل
هيلو سڀ. اسان توهان جي پروجيڪٽ لکڻ تي آرٽيڪل جو سلسلو جاري رکون ٿا. "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 1

شاخن کي ترتيب ڏيو

اهميت جي لحاظ کان، شاخن ۾ گم نه ٿيڻ جي لاءِ ۽ انهن جي آرڊر مخزن ۾، مون فيصلو ڪيو انهن جو نالو مٽائڻ جو STEP_{number} اڳياڙي شامل ڪندي . مثال طور، اسان وٽ مکيه شاخن کان علاوه ٽي شاخون آهن:
  • JRTB-0
  • JRTB-2
  • JRTB-3
توھان کي فوري طور تي سمجھ ۾ نه ايندي ته ڪھڙي پٺيان وڃڻ گھرجي. تنهن ڪري آئون انهن جو نالو هن ريت ڪندس:
  • STEP_1_JRTB-0 - پهريون قدم
  • STEP_2_JRTB-2 - ٻيو مرحلو
  • STEP_3_JRTB-3 - ٽيون قدم
۽ ائين ئي ايندڙ مضمونن لاءِ. شاخن جو نالو تبديل ڪرڻ لاءِ، مخزن واري صفحي تي وڃو ، برانچز باڪس ڳولھيو ، ان کي فالو ڪريو: "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 2ھر شاخ جي ھيٺان، پينسل تي ڪلڪ ڪريو ۽ شاخ جو نالو تبديل ڪريو: "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 3۽ نتيجي طور اسان کي حاصل ٿئي ٿو: "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 4رستي ۾، ھر ڪنھن شخص جنھن منھنجي ٽيليگرام چينل کي سبسڪرائيب ڪيو ھو مليو. مون فوري طور تي شاخن جو نالو تبديل ڪيو.

Docker جي باري ۾ ٿورو

Docker ڇا آهي؟ مختصر ۾، اهو هڪ اوزار آهي جنهن سان توهان جلدي ۽ محفوظ طور تي ايپليڪيشنن کي ترتيب ڏئي سگهو ٿا (تعيل)، انهن لاء هڪ بند انفراسٽرڪچر ٺاهي، صرف انهن لاء ضروري آهي. اهو اڃا ڏکيو آهي، مان سمجهان ٿو. عام طور تي، Docker سمجهي سگهجي ٿو هڪ ترقياتي پليٽ فارم جتي توهان ڪم ڪري سگهو ٿا جلدي ۽ موثر. Docker هڪ پروگرام جي طور تي سمجهي سگهجي ٿو جيڪو سرور تي هلندو آهي. ھن پروگرام ۾ ايپليڪيشنن سان گڏ ڪنٽينرز کي ذخيرو ڪرڻ جي صلاحيت آھي. هڪ ظرف ڇا آهي؟ هي هڪ الڳ انفراسٽرڪچر آهي جنهن ۾ توهان هر شي کي شامل ڪري سگهو ٿا جنهن جي توهان کي ضرورت آهي. مثال طور، جاوا ايپليڪيشن لاءِ اسان کي ايپليڪيشن کي هلائڻ لاءِ JRE جي ضرورت آهي، ڪنٽينر وٽ اهو هوندو، اسان کي ڪجهه ٻين سافٽ ويئر جي ضرورت پوندي - اسان هن کي شامل ڪري سگهون ٿا. يا شايد اسان کي ضرورت آهي لينڪس ۽ هڪ Tomcat servlet ڪنٽينر. اهو به ڪري سگهجي ٿو. ڪنٽينر ٺاهيا ويا آهن تصوير جي بنياد تي: اهو آهي، اهو هڪ مخصوص ٽيمپليٽ آهي جنهن ۾ ڊاکر ڪنٽينر ٺاهڻ لاء سڀ ڪجهه ضروري آهي. هن تصوير کي ڪيئن ٺاهيو؟ اسان جي صورت ۾، اسان کي پروجيڪٽ جي روٽ تي هڪ Dockerfile ٺاهڻ جي ضرورت پوندي جيڪا بيان ڪري ٿي ته ڪنٽينر ۾ ڇا هجڻ گهرجي. جيئن ته اسان بوٽ جي ٽوڪن کي ڪٿي به ظاهر ڪرڻ نٿا چاهيون، اسان کي ان کي پاس ڪرڻ جو طريقو ڪرڻو پوندو هر وقت جڏهن اسان ايپليڪيشن کي ترتيب ڏيڻ چاهيون ٿا. توهان هن موضوع بابت وڌيڪ پڙهي سگهو ٿا هتي ۽ هتي .

اسان لکون ٿا JRTB-13

اسان کي سرور تي اسان جي ايپليڪيشن لاءِ تڪڙو ۽ آسان ڊيپلائيمينٽ وارو عمل قائم ڪرڻ جي ضرورت آهي. اهو آهي، هڪ مشين لاء جيڪو ڪم ڪري ٿو 24/7. اچو ته Docker کي بنياد طور وٺون. پر اسان جي لسٽ تي ڪو به ڪم نه آهي جيڪو هن ڪارڪردگي کي شامل ڪرڻ لاء ذميوار هوندو. ڪنهن به طرح مون ان کي ياد ڪيو جڏهن ان کي ٺاهيو. ڪو مسئلو ناهي، اسان ان کي هاڻي ٺاهينداسين. GitHub تي مسئلو ٺاھڻ واري ٽيب ڏانھن وڃو ۽ فيچر جي درخواست کي منتخب ڪريو: "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 5ڪم جي وضاحت شامل ڪريو، ان جي قبوليت لاء معيار، سيٽ ڪريو جنھن منصوبي سان ھي مسئلو تعلق رکي ٿو ۽ توھان ھڪڙو نئون مسئلو ٺاھي سگھو ٿا: "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 6ھاڻي، ڏيکارڻ لاء ته ڪم قبول ڪيو ويو آھي. ڪم لاءِ، ڪم جي حالت کي تبديل ڪريو To do on Progress: "جاوا پروجيڪٽ A کان Z تائين": لاڳو ڪرڻ ايپليڪيشن ڊپلائيشن - 7ھي ھڪڙو ڏکيو مضمون ٿيڻ وارو آھي. جيڪڏهن توهان وٽ ڪو مسئلو آهي، تبصرن ۾ لکو: مان مانيٽر ڪندس ۽ انهن کي منهنجي بهترين صلاحيت جو جواب ڏيندس. هي هڪ ننڍڙو ڪسٽمر سپورٽ هوندو: ڊي

Dockerfile ٺاهڻ

هڪ dockerfile ڇا آهي؟ Docker لاءِ، هي هڪ اسڪرپٽ آهي (قدم-قدم هدايتون) هڪ ڊاڪر ڪنٽينر لاءِ تصوير ڪيئن ٺاهي. اسان جي ايپليڪيشن کي ڪم ڪرڻ لاء، اسان کي JDK، نسخو 11 جي ضرورت آهي. اهو آهي، اسان کي ڳولڻ جي ضرورت آهي JDK 11 ڊاکر تصوير ۽ ان کي اسان جي تصوير ۾ شامل ڪريو. هي هڪ جهڙي شيء آهي ته ڪيئن اسان هڪ ياداشت تي انحصار شامل ڪندا آهيون. Docker وٽ هن مقصد لاءِ DockerHub آهي . مقامي طور تي تصويرون ڊائون لوڊ ڪرڻ لاء، توهان کي اتي رجسٽر ڪرڻ جي ضرورت آهي. رجسٽريشن کان پوء، اچو ته ڏسو JDK11 لاء. جنهن مان مون کي مليو، اهو آهي ڪنٽينر: adoptopenjdk/openjdk11 . ھن ڪنٽينر جي وضاحت آھي جيڪو ڊڪر فائل لاءِ گھربل آھي:
FROM adoptopenjdk/openjdk11:ubi
RUN mkdir /opt/app
COPY japp.jar /opt/app
CMD ["java", "-jar", "/opt/app/japp.jar"]
اچو ته ان فولڊر کي درست ڪريون جتان اسان جار فائل وٺون ٿا. اسان وٽ اهو آهي ٽارگيٽ فولڊر ۾ اسان کي هلائڻ کانپوءِ اسان mvn پيڪيج maven ٽاسڪ. هي سڀ ڪرڻ کان پهرين، اپڊيٽ ٿيل مين برانچ جي بنياد تي، اسان پنهنجي ڪم لاءِ هڪ نئون ٺاهيندا آهيون: STEP_4_JRTB-13 . هاڻي توهان ڪم ڪري سگهو ٿا. پروجيڪٽ جي روٽ ۾، Dockerfile ايڪسٽينشن کان سواءِ فائل ٺاھيو ۽ ھيٺ ڏنل اندر شامل ڪريو:
FROM adoptopenjdk/openjdk11:ubi
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
پهرين لڪير اها آهي جيڪا تصوير تي ٻڌل هوندي - adoptopenjdk/openjdk11. ٻئين لڪير کي JAR_FILE نالي تصوير ۾ هڪ دليل شامل ڪرڻ آهي، جيڪو ٽارگيٽ فولڊر ۾ واقع آهي. ان کان علاوه، موجوده فولڊر Dockerfile جي مقام طرفان طئي ڪيو ويو آهي. ٽيون لائن - اسان جي پروجيڪٽ جي جار کي ڊاکر تصوير ۾ نقل ڪريو. آخري لڪير ۾ لازمي طور تي ٽرمينل ۾ ڪمانڊ مان ٺهيل هڪ صف شامل آهي، جيڪا خلا سان الڳ ڪئي وئي هئي. اھو آھي، آخر ۾ ھيٺ ڏنل عمل ڪيو ويندو: "java -jar /app.jar" بوٽ ٽوڪن کي راز رکڻ لاء، ڪنٽينر کي شروع ڪرڻ وقت اسان کي ٻن متغيرن کي پاس ڪرڻ جي ضرورت پوندي - بوٽ جو نالو ۽ ان جي ٽوڪن. هن کي ڪرڻ لاء، اسان هڪ سوال لکنداسين جيڪو اسان جي پروجيڪٽ کي متغير سان شروع ڪرڻ گهرجي. ۽ اهو ڪيئن ڪجي؟ توھان کي ان کي گوگل ڪرڻ جي ضرورت آھي: ھتي ھڪڙي عام وضاحت سان پھريون لنڪ آھي. اسان ڇا ڪرڻ چاهيون ٿا؟ اسان وٽ application.properties فائل ۾ ٻه متغير آهن جن کي اسين اتي بيان ڪريون ٿا:
  • bot.username
  • bot.token
مان چاهيان ٿو هڪ ڊاکر ڪنٽينر کي هلائڻ ۽ هر دفعي اتي منهنجي قيمت پاس ڪرڻ چاهيان ٿو ته جيئن ڪو به انهن قدرن کي نه ڏسي سگهي. مان ڄاڻان ٿو ته SpringBoot ۾، ماحوليات جا متغير جيڪي مقرر ڪيا ويندا آھن جڏھن جار پروجيڪٽ شروع ڪيو ويندو آھي، انھن تي ترجيح ڏيندا آھن جيڪي application.properties فائل ۾ آھن. هڪ درخواست ۾ هڪ متغير پاس ڪرڻ لاء، توهان کي هيٺين تعمير شامل ڪرڻ جي ضرورت آهي: -D{variable name}=”{variable value}” . اسان گھڙيل ڪڙيون شامل نه ڪندا آھيون؛) اسان کي ھڪڙي درخواست ملندي جيڪا اسان جي ايپليڪيشن کي اڳواٽ بيان ڪيل قدرن سان شروع ڪندي - بوٽ جو نالو ۽ ٽوڪن: java -jar -Dbot.username="test.javarush.community_bot" -Dbot. token=”dfgkdjfglkdjfglkdjfgk”*.jar ھاڻي اسان کي انھن متغيرن کي ڊاڪر ڪنٽينر اندر پاس ڪرڻو پوندو. هي هڪ ماحولياتي تبديلي آهي. انهي ڳالهه کي يقيني بڻائڻ لاءِ ته مستقبل ۾ اسان جو ڊيٽابيس آسانيءَ سان ڪم ڪري ۽ اسان جي ايپليڪيشن سان بغير ڪنهن پريشاني جي، اسان استعمال ڪنداسين docker-compose. هي هڪ الڳ اوزار آهي جنهن ۾ توهان ڪم، شروعاتي، ۽ ڪنٽينرز جي وچ ۾ انحصار کي منظم ڪري سگهو ٿا. ٻين لفظن ۾، اهو هڪ انفراسٽرڪچر جي ڪنٽينرز کي منظم ڪرڻ لاءِ ڊڪر جي چوٽي تي هڪ اضافو آهي. ان سان گڏ، ڊاڪر-ڪپوز کي هلائڻ کان اڳ، اسان کي پڪ ڪرڻ جي ضرورت آهي ته اسان سرور مان سڀئي ڪوڊ تبديلين کي ڇڪايو آهي، ايپليڪيشن ٺاهي ۽ پراڻي ورزن کي روڪيو. ان لاءِ اسان هڪ bash اسڪرپٽ استعمال ڪنداسين. واهه ... اهو سڀ ڪجهه ڏکيو لڳي ٿو، مان متفق آهيان. پر ايپليڪيشن جي ترتيب کي ترتيب ڏيڻ سان ڪم ڪرڻ هميشه هڪ مشڪل ۽ پيچيده عمل آهي. تنهن ڪري، اسان وٽ هڪ تمام سٺو منصوبو آهي:
  1. اچو ته bash اسڪرپٽ هلون.
  2. بش اسڪرپٽ ڊڪر-ڪپوز هلائي ٿو.
  3. Docker-compose اسان جي ايپليڪيشن سان گڏ هڪ ڊاکر ڪنٽينر شروع ڪري ٿو.
  4. ڊاڪر ڪنٽينر اسان جي ايپليڪيشن کي هلائي ٿو.
۽ هاڻي اسان کي پڪ ڪرڻ جي ضرورت آهي ته ٻه متغير - بوٽ جو نالو ۽ ان جو ٽوڪن - پوائنٽ 1 کان پوائنٽ 4 تائين وڃو. ۽ انهي ڪري ته اهي ٻئي متغير استعمال ڪيا وڃن جڏهن اسان جي جاوا ايپليڪيشن کي لانچ ڪيو وڃي. اچو ته آخر کان شروع تائين وڃو. اسان اڳ ۾ ئي ڄاڻون ٿا ته جرنڪ کي شروع ڪرڻ لاء ڪهڙي حڪم تي عمل ڪرڻ جي ضرورت آهي. تنهن ڪري، اسان Dockerfile کي ترتيب ڏينداسين ته جيئن اهو ٻه متغير قبول ڪرڻ ۽ انهن کي درخواست ڏانهن منتقل ڪرڻ سکي. هن کي ڪرڻ لاء، اچو ته Dockerfile کي ھيٺ ڏنل فارم ۾ گھٽايو:
FROM adoptopenjdk/openjdk11:ubi
ARG JAR_FILE=target/*.jar
ENV BOT_NAME=test.javarush_community_bot
ENV BOT_TOKEN=1375780501:AAE4A6Rz0BSnIGzeu896OjQnjzsMEG6_uso
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-Dbot.username=${BOT_NAME}", "-Dbot.token=${BOT_TOKEN}", "-jar", "/app.jar"]
توھان ڏسي سگھوٿا ته اسان ٻه لائينون شامل ڪيون ۽ اپڊيٽ ڪيو ENTRYPOINT. لائنون:
ENV BOT_NAME=test.javarush_community_bot
ENV BOT_TOKEN=1375780501:AAE4A6Rz0BSnIGzeu896OjQnjzsMEG6_uso
انڪوڊر فائل اندر متغير جو اعلان ڪريو. ڊفالٽ طور انهن وٽ هڪ قدر بيان ڪيل آهي. جيڪڏهن، جڏهن هن ڊڪر فائل مان هڪ تصوير ٺاهي، ماحولياتي متغير اهڙن نالن سان گذري ويا آهن، قدر مختلف ٿي ويندا. ۽ ENTRYPOINT ۾ اسان ڪجھ وڌيڪ عنصر شامل ڪيا آھن جيڪي پڙھندا اھي ماحولياتي متغير:
"-Dbot.username=${BOT_NAME}", "-Dbot.token=${BOT_TOKEN}"
هتي توهان ڏسي سگهو ٿا ته لائن جي اندر، ${} ٺاھڻ کي استعمال ڪندي، BOT_NAME ۽ BOT_TOKEN جا قدر پاس ڪيا ويندا. اڳيون، اسان کي سيکارڻ جي ضرورت آهي ته ڪيئن حاصل ڪجي ۽ انهن متغيرن کي docker-compose ڏانهن.

docker-compose.yml ٺاهيو

اهو توهان لاءِ سٺو ٿيندو ته توهان YAML فارميٽ جي باري ۾ الڳ الڳ پڙهو، ٻي صورت ۾ آرٽيڪل اڳ ۾ ئي وڌي رهيو آهي. اسان لاءِ، هي صرف .properties قسم جي متغيرن جي هڪ ٻي وضاحت آهي. صرف ملڪيتن ۾ اهو هڪ ڊٽ ذريعي لکيو ويو آهي، پر YAML ۾ اهو ٿورو وڌيڪ خوبصورت ڪيو ويو آهي. مثال طور، هن وانگر. .properties ۾ ٻه متغير: javarush.telegram.bot.name=ivan javarush.telegram.bot.token=pupkin پر .yaml ۾ (ساڳيو .yml) اهو هن طرح ٿيندو:
javarush:
	telegram:
		bot:
		  name: ivan
		  token: pupkin
ٻيو اختيار وڌيڪ خوبصورت ۽ سمجھڻ وارو آهي. جڳھون بلڪل ھجن جيئن مٿي ڄاڻايل آھي. اچو ته اسان جي application.properties ۽ application.yml جو ترجمو ڪريون. پهرين توهان کي ٺاهڻ جي ضرورت آهي. پروجيڪٽ جي روٽ ۾، هڪ فائل ٺاهيو docker-compose.yml ۽ اتي هيٺيون لکو:
version: '3.1'

services:
 jrtb:
   build:
     context: .
   environment:
     - BOT_NAME=${BOT_NAME}
     - BOT_TOKEN=${BOT_TOKEN}
   restart: always
پهرين لڪير آهي ڊاڪر-ڪپوز ورزن. خدمتون: چوي ٿو ته هن کان پوءِ هيٺيون سڀئي لائينون (شفٽ ڪيون وينديون) انهن خدمتن ڏانهن اشارو ڪيو جيڪي اسان ترتيب ڏئي رهيا آهيون. اسان وٽ هينئر تائين انهن مان صرف هڪ آهي - هڪ جاوا ايپليڪيشن jrtb . ۽ اڳ ۾ ئي ان جي هيٺان سڀ ان جي جوڙجڪ ٿي ويندي. مثال طور، ٺاھڻ: context: . چوي ٿو ته اسان Dockerfile کي ساڳي ڊاريڪٽري ۾ ڳولينداسين جيئن docker-compose.yml. پر ماحول: سيڪشن ذميوار هوندو انهي کي يقيني بڻائڻ لاءِ ته اسان ضروري ماحول جي متغيرن کي Dockerfile ڏانهن منتقل ڪيو. بس جيڪو اسان کي گهرجي. تنهن ڪري، اسان هيٺ ڏنل متغير پاس ڪريون ٿا. Docker-compose انھن کي سرور آپريٽنگ ماحول جي متغيرن ۾ ڳوليندا. اچو ته انهن کي بش اسڪرپٽ ۾ شامل ڪريون.

بش اسڪرپٽ ٺاهڻ

آخري قدم هڪ bash اسڪرپٽ ٺاهڻ آهي. پروجيڪٽ جي روٽ ۾ start.sh نالي هڪ فائل ٺاهيو ۽ اتي هيٺيون لکو:
#!/bin/bash

# Pull new changes
git pull

# Prepare Jar
mvn clean
mvn package

# Ensure, that docker-compose stopped
docker-compose stop

# Add environment variables
export BOT_NAME=$1
export BOT_TOKEN=$2

# Start new deployment
docker-compose up --build -d
پهرين لائن سڀني بش اسڪرپٽس لاءِ گهربل آهي: اهو ان کان سواءِ ڪم نه ڪندو. ۽ پوء - ٽرمينل ۾ صرف حڪمن جو هڪ سيٽ جنهن کي عمل ڪرڻ جي ضرورت آهي. مون هر حڪم ۾ رايا شامل ڪيا آهن تنهنڪري اهو واضح هجڻ گهرجي. صرف هڪ شيء جيڪا مان وضاحت ڪرڻ چاهيان ٿو اهو آهي $1 ۽ $2 جو مطلب. اهي ٻه متغير آهن جيڪي گذري ويندا جڏهن بش اسڪرپٽ شروع ڪئي ويندي. ايڪسپورٽ ڪمانڊ استعمال ڪندي، اهي سرور متغيرن ۾ شامل ڪيا ويندا ۽ ڊاکر-ڪپوز ۾ پڙهندا. اهو Ubuntu لاءِ ڪم ڪري ٿو، شايد ونڊوز لاءِ نه، پر مون کي پڪ ناهي. ھاڻي توھان کي شامل ڪرڻ جي ضرورت آھي stop.sh اسڪرپٽ، جيڪو ڪم کي روڪيندو. اهو ڪيترن ئي لائينن تي مشتمل هوندو:
#!/bin/bash

# Ensure, that docker-compose stopped
docker-compose stop

# Ensure, that the old application won't be deployed again.
mvn clean
هتي اسان ڊاڪر-ڪپوز کي روڪيو ۽ پروجيڪٽ جارنڪ کي صاف ڪريون، جيڪو آخري تعمير کان وٺي ڀرسان آهي. اسان اهو ڪندا آهيون انهي کي يقيني بڻائڻ لاءِ ته اسان جو پروجيڪٽ صحيح طور تي ٻيهر ٺهيل آهي. اهڙا مثال هئا، انهي ڪري مان شامل ڪري رهيو آهيان) نتيجي طور، اسان 4 نئين فائلن سان ختم ڪريون ٿا:
  • Dockerfile - اسان جي اپليڪيشن جي تصوير ٺاهڻ لاء هڪ فائيل؛
  • docker-compose.yml - سيٽنگن سان گڏ هڪ فائل انهي لاءِ ته اسان پنهنجا ڪنٽينر ڪيئن لانچ ڪنداسين؛
  • start.sh - اسان جي ايپليڪيشن کي ترتيب ڏيڻ لاء bash اسڪرپٽ؛
  • stop.sh اسان جي ايپليڪيشن کي روڪڻ لاءِ بش اسڪرپٽ آهي.
اسان 0.2.0-SNAPSHOT کان 0.3.0-SNAPSHOT تائين اسان جي ايپليڪيشن جو نسخو پڻ اپڊيٽ ڪنداسين. اچو ته نئين ورزن جي وضاحت شامل ڪريون RELEASE_NOTES ۾ ۽ ٿورڙو ريفيڪٽر ڪريون ته اتي ڇا هو:
# رليز نوٽس ## 0.3.0-SNAPSHOT * JRTB-13: پروجيڪٽ ۾ شامل ڪرڻ جو عمل ## 0.2.0-SNAPSHOT * JRTB-3: Telegram Bot ڪمانڊس کي سنڀالڻ لاءِ لاڳو ڪيل ڪمانڊ نمونو ## 0.1.0-SNAPSHOT * JRTB -2: شامل ڪيو ويو اسٽب ٽيليگرام بوٽ * JRTB-0: شامل ڪيو ويو اسپرنگ بوٽ اسڪيلٽن پروجيڪٽ
۽ README ۾ اسان هڪ نئون پيراگراف شامل ڪنداسين جيڪو بيان ڪري ٿو ته اسان جي ايپليڪيشن کي ڪيئن ترتيب ڏيڻ:
## ڊيپلائيمينٽ ڊيپلائيمينٽ جو عمل جيترو ممڪن ٿي سگهي آسان: گهربل سافٽ ويئر: - بش اسڪرپٽ هلائڻ لاءِ ٽرمينل - ڊاڪر - ڊڪر-ڪپوز ايپليڪيشن کي ترتيب ڏيڻ لاءِ، تبديل ڪريو گهربل برانچ ۾ ۽ هلايو بيش اسڪرپٽ: $ bash start.sh ${bot_username} ${bot_token } اهو ئي سڀ ڪجهه آهي.
يقينن، سڀ ڪجهه انگريزيء ۾ لکيل آهي. هميشه وانگر، اسان جي نئين ٺاهيل برانچ STEP_4_JRTB-13 ۾ اسان نالي سان هڪ نئون ڪمٽ ٺاهيون ٿا: JRTB-13: ڊاکر ذريعي ڊيپلائيمينٽ جي عمل کي لاڳو ڪريو ۽ ان کي دٻايو. مان انهن شين تي تفصيل سان رهڻ بند ڪريان ٿو جيڪي مون اڳئين مضمونن ۾ بيان ڪيا آهن. مون کي ساڳئي شيء کي ورجائڻ ۾ نقطو نظر نٿو اچي. ان کان علاوه، جن ان کي ڳولي ورتو ۽ اهو پاڻ ڪيو، انهن کي ڪو به سوال نه هوندو. هي مان ڳالهائي رهيو آهيان ته هڪ نئين برانچ ڪيئن ٺاهي، هڪ عزم ڪيئن ٺاهيو، مخزن ڏانهن هڪ عزم کي ڪيئن وڌايو.

هيٺين لائن

اڄ مون نئين معلومات جو هڪ ٽين ڏيکاريو آهي جنهن کي احتياط سان غور ڪرڻ جي ضرورت آهي ۽ اضافي پڙهڻ سان وڌايو وڃي. سڀ کان اهم شيء: ONE (!!!) حڪم جي مدد سان، اسان جي ايپليڪيشن کي ترتيب ڏيڻ لاء سڀ ڪجھ ضروري ڪيو ويندو. اهو ايترو ته سٺو آهي جو مان توهان کي ٻڌائي به نٿو سگهان. ها، مون کي ڊاکر دستاويزن ۾ هڪ مهذب وقت گذارڻو پيو ته اهو سمجهڻ لاءِ ته متغيرن کي صحيح طريقي سان اڳتي ڪيئن ڪجي. ھاڻي کان، ٽيليگرام بوٽ ھميشه مکيه برانچ جي جديد ورزن تي ڪم ڪندو. ٽيليگرام بوٽ سان ڳنڍيو. اڄ اتي مواد جا ڪي به لنڪ نه هوندا جيڪي پڙهڻ لاء سٺو هوندا: ذميواري توهان تي آهي. توھان کي ڄاڻڻ جي ضرورت آھي ڄاڻ ڳولڻ لاء. هرڪو جيڪو منهنجي ٽيليگرام چينل تي سبسڪرائب ڪيو هو تقريبا فوري طور تي بوٽ جي تعیناتي بابت ڄاڻيو. دوستو، ڇا توھان پروجيڪٽ پسند ڪيو؟ هن کي هڪ اسٽار ڏيو ! ان طريقي سان اهو وڌيڪ مشهور ٿيندو ۽ وڌيڪ ماڻهو ان بابت سکڻ ۽ سکڻ جي قابل هوندا. هميشه وانگر، مان گيٽ هب تي رجسٽر ڪرڻ جي صلاح ڏيان ٿو ۽ هن سيريز ۽ منهنجي ٻين منصوبن جي پيروي ڪرڻ لاءِ منهنجي اڪائونٽ تي عمل ڪريو جن تي آئون اتي ڪم ڪريان ٿو. هاڻي اسان ڊيٽابيس کي ڳنڍڻ لاء تيار آهيون. ايندڙ مضمون ڊگھو ٿيندو ۽ ان ۾ اسين ڊيٽابيس سان ڪم ڪرڻ لاء سڀ ڪجھ ضروري ڪنداسين. سڀ تفصيل JRTB-1 ۾ آهن .

سيريز ۾ سڀني مواد جي هڪ فهرست هن مضمون جي شروعات ۾ آهي.

تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION