CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
پدې مقاله کې ، زه به د Plesk کنټرول پینل او ګیتوب عملونو په کارولو سره د CI / CD تنظیم کولو تجربه شریک کړم. نن ورځ موږ به زده کړو چې څنګه د "Helloworld" نوم سره یو ساده پروژه پلي کړو. دا د فلاسک پایتون چوکاټ کې لیکل شوی ، د سیلري کارګرانو او انګولر 8 فرنټ اینډ سره.

د ذخیره کولو لینکونه: شاته, مخ اخری.

د مقالې په لومړۍ برخه کې، موږ به زموږ پروژه او د هغې برخې وګورو. په دویمه برخه کې، موږ به معلومه کړو چې څنګه Plesk تنظیم کړئ او اړین توسیعونه او برخې نصب کړئ (DB، RabbitMQ، Redis، Docker، او نور).

په دریمه برخه کې، موږ به په پای کې دا معلومه کړو چې څنګه زموږ د پروژې سرور ته د dev او prod چاپیریال کې ځای پرځای کولو لپاره پایپ لاین تنظیم کړو. او بیا به موږ سایټ په سرور کې پیل کړو.

او هو، ما خپل ځان معرفي کول هیر کړل. زما نوم اولیګ بورزوف دی، زه په ډومکلک کې د ګروي مدیرانو لپاره د CRM ټیم کې بشپړ سټیک جوړونکی یم.

د پروژې عمومي کتنه

لومړی، راځئ چې دوه پروژې ذخیره وګورو - شاته او مخ - او کوډ ته لاړ شئ.

شاته: فلاسک + سیلري

د شاتنۍ برخې لپاره ، ما یوه ډله واخیسته چې د پایتون پراختیا کونکو ترمنځ خورا مشهوره ده: د فلاسک چوکاټ (د API لپاره) او سیلري (د کاري کتار لپاره). SQLAchemy د ORM په توګه کارول کیږي. الیمبیک د مهاجرت لپاره کارول کیږي. په لاسونو کې د JSON تایید لپاره - مارشمیلو.

В ذخیره د Readme.md فایل شتون لري چې د جوړښت تفصیلي توضیحات او د پروژې د چلولو لارښوونې لري.

د ویب برخې API خورا ساده، له 6 قلمونو څخه جوړ دی:

  • /ping - د شتون چک کول؛
  • د راجستریشن، واک ورکولو، غیر واک ورکولو او د یو مجاز کارونکي ترلاسه کولو لپاره لاسوندونه؛
  • د بریښنالیک لاسوند چې د سیلري په کتار کې دنده اچوي.

د سیلري برخه حتی اسانه، یوازې یوه ستونزه ده send_mail_task.

په فولډر کې /conf دوه فرعي فولډرونه شتون لري:

  • docker د دوه ډاکر فایلونو سره (base.dockerfile د ندرت بدلیدونکي اساس عکس رامینځته کول او Dockerfile د اصلي غونډو لپاره)
  • .env_files - د مختلف چاپیریالونو لپاره د چاپیریال متغیرونو سره فایلونو سره.

د پروژې په ریښه کې څلور ډاکر - کمپوز فایلونه شتون لري:

  • docker-compose.local.db.yml د پراختیا لپاره سیمه ایز ډیټابیس رامینځته کول؛
  • docker-compose.local.workers.yml د کارګر، ډیټابیس، Redis او RabbitMQ د ځایی لوړولو لپاره؛
  • docker-compose.test.yml د ګمارنې پرمهال ازموینې ترسره کول؛
  • docker-compose.yml د ګمارنې لپاره.

او وروستی فولډر چې موږ ورسره علاقه لرو - .ci-cd. دا د ځای پرځای کولو لپاره شیل سکریپټونه لري:

  • deploy.sh - د مهاجرت پیل او ځای پرځای کول. په ګیتوب عملونو کې د ازموینو جوړولو او چلولو وروسته په سرور کې چلیږي؛
  • rollback.sh - د مجلس پخوانۍ نسخې ته د کانټینرونو رول بیک؛
  • curl_tg.sh - ټیلیګرام ته د ګمارنې خبرتیاوې لیږل.

Frontend په زاویه کې

مخکینۍ سره ذخیره د بیک په پرتله خورا ساده. مخکینۍ برخه درې پاڼې لري:

  • اصلي پاڼه د بریښنالیک لیږلو فورمه او د وتلو تڼۍ سره.
  • د ننوتلو پاڼه.
  • د نوم لیکنې پاڼه.

اصلي پاڼه د سپیڅلي ښکاري:

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
په ریښه کې دوه فایلونه شتون لري Dockerfile и docker-compose.yml, همدارنګه پیژندل شوی فولډر .ci-cd د شاته ذخیرې په پرتله د یو څه لږ سکریپټونو سره (د چلولو ازموینو لپاره لیرې شوي سکریپټونه).

په Plesk کې د پروژې پیل کول

راځئ چې د Plesk په ترتیب کولو او زموږ د سایټ لپاره د ګډون په جوړولو سره پیل وکړو.

د توسیعونو نصب کول

په Plesk کې، موږ څلور توسیعونو ته اړتیا لرو:

  • Docker د پلیسک اډمین پینل کې د کانټینرونو حالت اداره او لید ښودل؛
  • Git په سرور کې د ځای پرځای کولو مرحله تنظیم کول؛
  • Let's Encrypt د وړیا TLS سندونو تولید (او په اتوماتيک ډول نوي کول)؛
  • Firewall د راتلونکو ټرافیک د فلټر کولو ترتیب کول.

تاسو کولی شئ دا د توسیع برخې کې د Plesk اډمین پینل له لارې نصب کړئ:

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
موږ به د توسیع لپاره تفصيلي ترتیبات په پام کې ونیسو، ډیفالټ ترتیبات به زموږ د ډیمو موخو لپاره ترسره کړي.

یو ګډون او سایټ جوړ کړئ

بیا، موږ اړتیا لرو چې زموږ د helloworld.ru ویب پاڼې لپاره ګډون جوړ کړو او هلته dev.helloworld.ru فرعي ډومین اضافه کړو.

  1. د helloworld.ru ډومین لپاره ګډون جوړ کړئ او د سیسټم کارونکي لپاره د ننوتلو پاسورډ مشخص کړئ:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
    د پاڼې په پای کې بکس چیک کړئ د لیټ انکریپټ سره ډومین خوندي کړئکه موږ غواړو د سایټ لپاره HTTPS تنظیم کړو:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  2. بیا، په دې ګډون کې، یو فرعي ډومین جوړ کړئ dev.helloworld.ru (د کوم لپاره چې تاسو کولی شئ وړیا TLS سند هم صادر کړئ):

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

د سرور اجزاو نصب کول

موږ سره یو سرور لرو OS Debian Stretch 9.12 او نصب شوي کنټرول پینل پلسک اوبسیډیان 18.0.27.

موږ اړتیا لرو چې زموږ د پروژې لپاره نصب او تنظیم کړو:

  • PostgreSQL (زموږ په قضیه کې به یو سرور وي چې د dev او prod چاپیریال لپاره دوه ډیټابیسونه ولري).
  • RabbitMQ (د چاپیریال لپاره د مختلف ویسټونو سره ورته، ورته مثال).
  • دوه ریډیس مثالونه (د dev او prod چاپیریال لپاره).
  • د ډاکر راجسټری (د جوړ شوي ډاکر عکسونو ځایی ذخیره کولو لپاره).
  • د ډاکر راجسټری لپاره UI.

پوسټری ایس ایس ایل

Plesk لا دمخه د PostgreSQL DBMS سره راځي، مګر وروستۍ نسخه نه ده (د Plesk Obsidian لیکلو په وخت کې ملاتړ شوی د پوسټګریس نسخه 8.4-10.8). موږ زموږ د غوښتنلیک لپاره وروستۍ نسخه غواړو (د دې لیکلو په وخت کې 12.3)، نو موږ به یې په لاسي ډول نصب کړو.

په شبکه کې دبیان په اړه د پوسټګریس نصبولو لپاره ډیری مفصل لارښوونې شتون لري (مثال)، نو زه به یې په تفصیل سره بیان نه کړم، زه به یوازې حکمونه ورکړم:

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

د دې په پام کې نیولو سره چې PostgreSQL د منځنۍ کچې ډیفالټ ترتیبات لري، دا اړینه ده چې ترتیب سم کړئ. دا به زموږ سره مرسته وکړي شمېرګر: تاسو اړتیا لرئ د خپل سرور پیرامیټونو کې موټر چل کړئ او په فایل کې تنظیمات بدل کړئ /etc/postgresql/12/main/postgresql.confهغو کسانو ته چې وړاندیز کیږي. دلته باید یادونه وشي چې دا ډول محاسبین د جادو ګولۍ نه دي، او بیس باید ستاسو د هارډویر، غوښتنلیک، او د پوښتنو پیچلتیا پراساس ډیر دقیق وي. مګر دا د پیل کولو لپاره کافی دی.

د کیلکولیټر لخوا وړاندیز شوي تنظیماتو سربیره ، موږ هم په کې بدلون کوو postgresql.confډیفالټ پورټ 5432 بل ته (زموږ په مثال کې - 53983).

د ترتیب کولو فایل بدلولو وروسته، د کمانډ سره د postgresql-server بیا پیل کړئ:

service postgresql restart

موږ PostgreSQL نصب او تنظیم کړی دی. اوس راځئ چې یو ډیټابیس جوړ کړو، د dev- او prod- چاپیریال لپاره کاروونکي، او کاروونکو ته د ډیټابیس اداره کولو حق ورکړئ:

$ su - postgres
postgres:~$ create database hw_dev_db_name;
CREATE DATABASE
postgres:~$ create user hw_dev_db_user with password 'hw_dev_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_dev_db_name to hw_dev_db_user;
GRANT
postgres:~$ create database hw_prod_db_name;
CREATE DATABASE
postgres:~$ create user hw_prod_db_user with password 'hw_prod_db_password';
CREATE ROLE
postgres:~$ grant ALL privileges ON database hw_prod_db_name to hw_prod_db_user;
GRANT

RabbitMQ

راځئ چې د RabbitMQ نصبولو ته لاړ شو، د سیلري لپاره د پیغام بروکر. په دیبیان کې دا نصب کول خورا ساده دي:

wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb

sudo apt-get update
sudo apt-get install erlang erlang-nox

sudo add-apt-repository 'deb http://www.rabbitmq.com/debian/ testing main'
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt-get update
sudo apt-get install rabbitmq-server

د نصبولو وروسته، موږ باید جوړ کړو vhosts، کاروونکي او اړین حقونه ورکوي:

sudo rabbitmqctl add_user hw_dev_amqp_user hw_dev_amqp_password 
sudo rabbitmqctl set_user_tags hw_dev_amqp_user administrator
sudo rabbitmqctl add_vhost hw_dev_vhost
sudo rabbitmqctl set_permissions -p hw_dev_vhost hw_dev_amqp_user ".*" ".*" ".*"

sudo rabbitmqctl add_user hw_prod_amqp_user hw_prod_amqp_password 
sudo rabbitmqctl set_user_tags hw_prod_amqp_user administrator
sudo rabbitmqctl add_vhost hw_prod_vhost
sudo rabbitmqctl set_permissions -p hw_prod_vhost hw_prod_amqp_user ".*" ".*" ".*"

Redis

اوس راځئ چې زموږ د غوښتنلیک - ریډیس لپاره وروستی برخه نصب او تنظیم کړو. دا به د سیلري دندو د پایلو ذخیره کولو لپاره د شالید په توګه وکارول شي.

موږ به د توسیع په کارولو سره د dev او prod چاپیریالونو لپاره د Redis سره دوه Docker کانټینرونه پورته کړو Docker د Plesk لپاره.

  1. موږ پلسک ته ځو ، د توسیع برخې ته ځو ، د ډاکر توسیع وګورو او نصب یې کړو (موږ وړیا نسخې ته اړتیا لرو):

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  2. نصب شوي توسیع ته لاړ شئ، د لټون له لارې انځور ومومئ redis bitnami او وروستی نسخه نصب کړئ:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  3. موږ ډاونلوډ شوي کانټینر ته ځو او ترتیب تنظیم کړئ: بندر مشخص کړئ ، د اعظمي تخصیص شوي RAM اندازه ، د چاپیریال متغیرونو کې پاسورډ ، او حجم نصب کړئ:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  4. موږ د پروډ کانټینر لپاره 2-3 مرحلې ترسره کوو، په ترتیباتو کې موږ یوازې پیرامیټونه بدلوو: پورټ، پاسورډ، د رام اندازه او په سرور کې د حجم فولډر ته لاره:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

د ډاکر راجستر

د لومړني خدماتو سربیره ، دا به ښه وي چې خپل د ډاکر عکس ذخیره په سرور کې واچوئ. خوشبختانه ، د سرور ځای اوس خورا ارزانه دی (یقینا د DockerHub ګډون څخه ارزانه) ، او د شخصي ذخیره کولو پروسه خورا ساده ده.

موږ غواړو:

دا کولو لپاره:

  1. راځئ چې زموږ په ګډون کې په Plesk کې دوه فرعي ډومینونه جوړ کړو: docker.helloworld.ru او docker-ui.helloworld.ru، او د دوی لپاره د کوډ کولو سندونه تنظیم کړئ.
  2. فایل د docker.helloworld.ru فرعي ډومین فولډر ته اضافه کړئ docker-compose.yml د دې په څیر منځپانګې سره:
    version: "3"
    
    services:
      docker-registry:
        image: "registry:2"
        restart: always
        ports:
          - "53985:5000"
        environment:
          REGISTRY_AUTH: htpasswd
          REGISTRY_AUTH_HTPASSWD_REALM: basic-realm
          REGISTRY_AUTH_HTPASSWD_PATH: /auth/.htpasswd
          REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data
        volumes:
          - ./.docker-registry.htpasswd:/auth/.htpasswd
          - ./data:/data
    
      docker-registry-ui:
        image: konradkleine/docker-registry-frontend:v2
        restart: always
        ports:
          - "53986:80"
        environment:
          VIRTUAL_HOST: '*, https://*'
          ENV_DOCKER_REGISTRY_HOST: 'docker-registry'
          ENV_DOCKER_REGISTRY_PORT: 5000
        links:
          - 'docker-registry'
    

  3. د SSH لاندې، موږ به د ډاکر ذخیره کې د بنسټیز واک لپاره د .htpasswd فایل تولید کړو:
    htpasswd -bBc .htpasswd hw_docker_admin hw_docker_password
  4. کانتینرونه راټول او پورته کړئ:
    docker-compose up -d
  5. او موږ اړتیا لرو چې نګینکس زموږ کانټینرونو ته واړوو. دا د Plesk له لارې ترسره کیدی شي.

لاندې مرحلې باید د docker.helloworld.ru او docker-ui.helloworld.ru فرعي ډومینونو لپاره ترسره شي:

کړی دیو اوزار زموږ سایټ ته لاړ شئ د ډاکر پراکسي قواعد:

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
او زموږ کانټینر ته د پراکسي راتلونکي ترافیک لپاره یو قاعده اضافه کړئ:

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  1. موږ ګورو چې موږ کولی شو خپل کانټینر ته د ځایی ماشین څخه ننوتل:
    $ docker login docker.helloworld.ru -u hw_docker_admin -p hw_docker_password
    WARNING! Using --password via the CLI is insecure. Use --password-stdin.
    Login Succeeded
  2. راځئ چې د docker-ui.helloworld.ru فرعي ډومین عملیات هم وګورو:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
    کله چې تاسو د براؤز ذخیره کولو باندې کلیک وکړئ ، براوزر به د اختیار کولو کړکۍ وښیې چیرې چې تاسو اړتیا لرئ د ذخیره کولو لپاره کارن نوم او پټنوم دننه کړئ. له هغې وروسته، موږ به د ذخیره کولو لیست سره یوې پاڼې ته لیږل کیږو (د اوس لپاره، دا به ستاسو لپاره خالي وي):

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

په Plesk Firewall کې د بندرونو پرانیستل

د اجزاو نصب او تنظیم کولو وروسته ، موږ اړتیا لرو بندرونه خلاص کړو ترڅو اجزا د ډاکر کانټینرونو او بهرني شبکې څخه د لاسرسي وړ وي.

راځئ وګورو چې دا څنګه د Plesk لپاره د فایروال توسیع په کارولو سره ترسره کړئ چې موږ دمخه نصب کړی.

  1. ورتګ وسیلې او ترتیبات> ترتیبات> فایر وال:
    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
  2. ورتګ د Plesk فایروال قواعد تعدیل کړئ> دودیز قواعد اضافه کړئ او د ډاکر سبنټ لپاره لاندې TCP بندرونه خلاص کړئ (172.0.0.0 / 8):
    RabbitMQ: 1883، 4369، 5671-5672، 25672، 61613-61614
    ریډیس: 32785، 32786

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  3. موږ به یو قاعده هم اضافه کړو چې بهرنۍ نړۍ ته به د PostgreSQL بندرونه او RabbitMQ مدیریت پینل خلاص کړي:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  4. د بدلونونو تڼۍ په کارولو سره مقررات پلي کړئ:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

په ګیتوب عملونو کې د CI/CD تنظیم کول

راځئ چې ترټولو په زړه پورې برخې ته ورسیږو - د دوامداره ادغام پایپ لاین تنظیم کول او سرور ته زموږ پروژه وړاندې کول.

دا پایپ لاین به دوه برخې ولري:

  • د عکس جوړول او د ازموینې چلول (د شاته پای لپاره) - د ګیتوب اړخ کې؛
  • د مهاجرت چلول (د شالید لپاره) او د کانټینرونو ځای په ځای کول - په سرور کې.

Plesk ته واستول

راځئ چې لومړی د دویم ټکي سره معامله وکړو (ځکه چې لومړی په دې پورې اړه لري).

موږ به د پلیسک لپاره د Git توسیع په کارولو سره د ګمارنې پروسه تنظیم کړو.

د بیکینډ ذخیره کولو لپاره د پروډ چاپیریال سره یو مثال په پام کې ونیسئ.

  1. موږ زموږ د هیلوورلډ ویب پاڼې ګډون ته ځو او د Git فرعي برخې ته ځو:

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  2. زموږ د ګیتوب ذخیره ته لینک د "ریموټ ګیټ ذخیره" ډګر کې دننه کړئ او ډیفالټ فولډر بدل کړئ httpdocs بل ته (د مثال په توګه. /httpdocs/hw_back):

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  3. د مخکینۍ مرحلې څخه د SSH عامه کیلي کاپي کړئ او اضافه کول دا د Github ترتیباتو کې دی.
  4. په 2 مرحله کې په سکرین کې OK کلیک وکړئ، له هغې وروسته به موږ په Plesk کې د ذخیره پاڼې ته لیږل کیږو. اوس موږ اړتیا لرو چې ذخیره تنظیم کړو ترڅو ماسټر څانګې ته په ژمنو کې تازه شي. د دې کولو لپاره، لاړ شئ د ذخیره کولو ترتیبات او ارزښت خوندي کړئ Webhook URL (موږ به وروسته ورته اړتیا ولرو کله چې د ګیتوب عمل تنظیم کړئ):

    CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

  5. د مخکینۍ پراګراف څخه په سکرین کې د عملونو ساحه کې، د ځای پرځای کولو پیل کولو لپاره سکریپټ داخل کړئ:
    cd {REPOSITORY_ABSOLUTE_PATH}
    .ci-cd/deploy.sh {ENV} {DOCKER_REGISTRY_HOST} {DOCKER_USER} {DOCKER_PASSWORD} {TG_BOT_TOKEN} {TG_CHAT_ID} 

    چیرې چې:

    {REPOSITORY_ABSOLUTE_PATH} - په سرور کې د بیک انډ ذخیره پروډ فولډر ته لاره؛
    {ENV} - چاپیریال (dev / prod)، زموږ په قضیه کې prod;
    {DOCKER_REGISTRY_HOST} - زموږ د ډاکر ذخیره کوربه
    {TG_BOT_TOKEN} - د ټیلیګرام بوټ نښه؛
    {TG_CHAT_ID} - د خبرتیاو لیږلو لپاره د چیٹ/چینل ID.

    د سکریپټ مثال:

    cd /var/www/vhosts/helloworld.ru/httpdocs/hw_back/
    .ci-cd/deploy.sh dev docker.helloworld.ru docker_user docker_password 12345678:AAbcdEfghCH1vGbCasdfSAs0K5PALDsaw -1001234567890
  6. زموږ د ګډون څخه یو کارن د ډاکر ګروپ ته اضافه کړئ (نو دوی کولی شي کانټینرونه اداره کړي):
    sudo usermod -aG docker helloworld_admin

د بیک اینډ ذخیره کولو لپاره د dev چاپیریال او مخکني برخه په ورته ډول تنظیم شوي.

په ګیتوب عملونو کې د پلي کولو پایپ لاین

راځئ چې په ګیتوب عملونو کې زموږ د CI/CD پایپ لاین لومړۍ برخې تنظیم کولو ته لاړ شو.

بډایډ

پایپ لاین په کې تشریح شوی deploy.yml فایل.

مګر د دې تحلیل کولو دمخه ، راځئ هغه پټ متغیرونه ډک کړو چې موږ په ګیتوب کې ورته اړتیا لرو. د دې کولو لپاره، لاړ شئ ترتیبات -> رازونه:

  • DOCKER_REGISTRY - زموږ د ډاکر ذخیره کوربه (docker.helloworld.ru)؛
  • DOCKER_LOGIN - د ډاکر ذخیره ته ننوتل؛
  • DOCKER_PASSWORD - دې ته پټنوم؛
  • DEPLOY_HOST - کوربه چیرې چې د Plesk اډمین پینل شتون لري (مثال: helloworld.ru: 8443 یا 123.4.56.78۸۴۴۳ );
  • DEPLOY_BACK_PROD_TOKEN - په سرور کې د پروډ ذخیره کولو لپاره د ځای پرځای کولو نښه (موږ دا په پلیسک کې د ځای په ځای کولو کې ترلاسه کړې. 4)؛
  • DEPLOY_BACK_DEV_TOKEN - په سرور کې د dev ذخیره کولو لپاره د ځای پرځای کولو نښه.

د ګمارنې پروسه ساده ده او له دریو اصلي مرحلو څخه جوړه ده:

  • زموږ په ذخیره کې د عکس جوړول او خپرول؛
  • د تازه جوړ شوي عکس پراساس په کانټینر کې ازموینې چلول؛
  • مطلوب چاپیریال ته ځای په ځای کول د څانګې (dev/master) پورې اړه لري.

مخ اخری

د مخکینۍ ذخیره لپاره deploy.yml فایل د بیک څخه لږ توپیر. دا د چلولو ازموینو سره یو ګام نلري او د ګمارلو لپاره د ټوکن نومونه بدلوي. د مخکینۍ ذخیره لپاره رازونه، په هرصورت، باید په جلا توګه ډک شي.

د سایټ تنظیم کول

د Nginx له لارې د ترافیک پراکسي کول

ښه، موږ پای ته رسیدلي یو. دا یوازې د Nginx له لارې زموږ کانټینر ته د راتلوونکي او وتلو ترافیک پراکسي تنظیم کولو لپاره پاتې کیږي. موږ دمخه دا پروسه د ډاکر راجسټری تنظیم 5 مرحله کې پوښلې ده. ورته باید په dev او prod چاپیریال کې د شا او مخ برخو لپاره تکرار شي.

زه به د ترتیباتو سکرین شاټونه چمتو کړم.

بډایډ

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې

مخ اخری

CI/CD د فلاسک + انګولر پروژې لپاره په ګیتوب عملونو کې
уточнение уточнение. ټول یو آر ایل به د فرنټ اینډ کانټینر ته پراکسي وي، پرته له هغه چې پیل کیږي /api/ - دوی به شاته کانټینر ته پراکسي شي (نو په شا کانټینر کې، ټول سمبالونکي باید پیل شي /api/).

پایلې

اوس زموږ سایټ باید په helloworld.ru او dev.helloworld.ru کې شتون ولري (په ترتیب سره prod- او dev-environments).

په مجموع کې ، موږ زده کړل چې څنګه په فلاسک او انګولر کې یو ساده غوښتنلیک چمتو کړو او په ګیتوب عملونو کې پایپ لاین تنظیم کړو ترڅو دا د Plesk پرمخ وړونکي سرور ته راوباسي.

زه به د کوډ سره د ذخیره کولو لینکونه نقل کړم: شاته, مخ اخری.

سرچینه: www.habr.com

Add a comment