Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
Энэ нийтлэлд би Plesk Control Panel болон Github Actions ашиглан CI/CD-г тохируулах туршлагаа хуваалцах болно. Өнөөдөр бид "Helloworld" нэртэй энгийн төслийг хэрхэн хэрэгжүүлэх талаар сурах болно. Энэ нь Flask Python хүрээнд бичигдсэн бөгөөд Celery ажилчид болон Angular 8 нүүрэн талтай.

Хадгалах газруудын холбоосууд: backend, урд хэсэг.

Өгүүллийн эхний хэсэгт бид төсөл болон түүний хэсгүүдийг авч үзэх болно. Хоёрдугаарт, бид Plesk-ийг хэрхэн тохируулах, шаардлагатай өргөтгөлүүд болон бүрэлдэхүүн хэсгүүдийг (DB, RabbitMQ, Redis, Docker гэх мэт) суулгах талаар олж мэдэх болно.

Гурав дахь хэсэгт бид төслийг боловсруулах болон үйлдвэрлэлийн орчинд серверт байршуулах дамжуулах хоолойг хэрхэн яаж тохируулахыг олж мэдэх болно. Дараа нь бид сайтыг сервер дээр ажиллуулах болно.

Тийм ээ, би өөрийгөө танилцуулахаа мартсан байна. Намайг Олег Борзов гэдэг, би Domclick дахь моргейжийн менежерүүдэд зориулсан CRM багийн бүрэн хэмжээний хөгжүүлэгч юм.

Төслийн тойм

Эхлээд хоёр төслийн агуулахыг харцгаая - арын болон урд хэсэг - кодыг харцгаая.

Арын хэсэг: Колбо+Селлерей

Ар талд нь би Python хөгжүүлэгчдийн дунд нэлээд түгээмэл байдаг багцыг авсан: Flask framework (API-д зориулагдсан) болон Celery (даалгаврын дараалалд зориулсан). SQLAchemy-ийг ORM болгон ашигладаг. Алембикийг нүүдэл хийхэд ашигладаг. Бариул дахь JSON баталгаажуулалтын хувьд - Marshmallow.

В агуулахууд Бүтцийн дэлгэрэнгүй тайлбар, төслийг хэрэгжүүлэх заавар бүхий Readme.md файл байна.

Web Part 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 - шилжилт хөдөлгөөн, байршуулалтыг эхлүүлэх. Github Actions дээр туршилт хийж, ажиллуулсны дараа сервер дээр ажилладаг;
  • rollback.sh - савыг угсралтын өмнөх хувилбар руу буцаах;
  • curl_tg.sh - Telegram руу байршуулах мэдэгдлийг илгээх.

Angular дээр нүүр хуудас

Урд талын агуулах Бэкийнхээс хамаагүй энгийн. Урд тал нь гурван хуудаснаас бүрдэнэ.

  • Имэйл илгээх маягт, гарах товчлуур бүхий үндсэн хуудас.
  • Нэвтрэх хуудас.
  • Бүртгэлийн хуудас.

Үндсэн хуудас нь даяанч харагдаж байна:

Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
Үндэс дээр хоёр файл байна Dockerfile и docker-compose.yml, түүнчлэн танил хавтас .ci-cd арын репозитороос арай цөөн скрипттэй (тест ажиллуулах скриптүүдийг устгасан).

Plesk-д төсөл эхлүүлж байна

Эхлээд Plesk-ийг суулгаж, манай сайтын захиалга үүсгэцгээе.

Өргөтгөлүүдийг суулгаж байна

Plesk-д бидэнд дөрвөн өргөтгөл хэрэгтэй:

  • Docker Plesk админ самбар дээрх савны статусыг удирдах, нүдээр харуулах;
  • Git сервер дээр байршуулах алхамыг тохируулах;
  • Let's Encrypt үнэгүй TLS гэрчилгээ үүсгэх (мөн автоматаар шинэчлэх);
  • Firewall ирж буй урсгалын шүүлтүүрийг тохируулах.

Та тэдгээрийг Өргөтгөл хэсэг дэх Plesk админ самбараар суулгаж болно.

Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
Бид өргөтгөлүүдийн нарийвчилсан тохиргоог авч үзэхгүй бөгөөд анхдагч тохиргоо нь бидний демо зорилгоор хийгдсэн болно.

Захиалга болон сайт үүсгэх

Дараа нь бид helloworld.ru вэбсайтдаа захиалга үүсгэж, тэнд dev.helloworld.ru дэд домайныг нэмэх хэрэгтэй.

  1. helloworld.ru домэйны захиалга үүсгэж, системийн хэрэглэгчийн нэвтрэх нууц үгээ зааж өгнө үү.

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
    Хуудасны доод талд байгаа нүдийг шалгана уу Let's Encrypt ашиглан домайныг хамгаалаарайхэрэв бид сайтад HTTPS тохируулахыг хүсвэл:

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  2. Дараа нь, энэ захиалгад dev.helloworld.ru дэд домайн үүсгэнэ үү (үүнд та үнэгүй TLS гэрчилгээ олгох боломжтой):

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

Серверийн бүрэлдэхүүн хэсгүүдийг суулгаж байна

Бидэнд сервер бий OS Debian Stretch 9.12 болон суурилуулсан хяналтын самбар Plesk Obsidian 18.0.27.

Бид төсөлдөө суулгаж, тохируулах хэрэгтэй:

  • PostgreSQL (манай тохиолдолд dev болон prod орчинд зориулсан хоёр мэдээллийн сантай нэг сервер байх болно).
  • RabbitMQ (орчинд зориулсан өөр өөр vhost-той ижил, ижил жишээ).
  • Хоёр Redis тохиолдол (хөгжүүлэгч болон үйлдвэрлэлийн орчинд).
  • Docker Registry (барьсан Docker зургуудыг дотоод хадгалахад зориулагдсан).
  • Docker бүртгэлийн UI.

PostgreSQL

Plesk нь PostgreSQL DBMS-тэй аль хэдийн ирдэг боловч хамгийн сүүлийн хувилбар биш (Plesk Obsidian бичих үед) дэмжигдсэн Postgres хувилбарууд 8.4–10.8). Бид програмынхаа хамгийн сүүлийн хувилбарыг (энэ зүйлийг бичиж байх үед 12.3) авахыг хүсч байгаа тул бид үүнийг гараар суулгах болно.

Net дээр Debian дээр Postgres суулгах талаар маш олон дэлгэрэнгүй заавар байдаг (жишээ нь), тиймээс би тэдгээрийг нарийвчлан тайлбарлахгүй, би зүгээр л тушаалуудыг өгөх болно:

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-серверийг дахин эхлүүлнэ үү.

service postgresql restart

Бид PostgreSQL-г суулгаж тохируулсан. Одоо өгөгдлийн сан, хөгжүүлэлтийн болон үйлдвэрлэлийн орчны хэрэглэгчид үүсгэж, мэдээллийн санг удирдах эрхийг хэрэглэгчдэд өгцгөөе:

$ 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

Rabbit MQ

Celery-д зориулсан мессеж брокер болох RabbitMQ-г суулгаж үзье. Үүнийг Debian дээр суулгах нь маш энгийн:

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

Одоо бидний хэрэглээний хамгийн сүүлийн бүрэлдэхүүн хэсэг болох Redis-ийг суулгаж тохируулцгаая. Энэ нь Селөдерей даалгаврын үр дүнг хадгалахад ашиглагдах болно.

Бид өргөтгөлийг ашиглан dev болон prod орчинд зориулсан Redis-тай хоёр Docker контейнер босгоно Docker Plesk-ийн хувьд.

  1. Бид Plesk руу очоод Өргөтгөлүүд хэсэгт очоод Docker өргөтгөлийг хайж олоод суулгана (бидэнд үнэгүй хувилбар хэрэгтэй):

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  2. Суулгасан өргөтгөл рүү очоод хайлтаар дамжуулан зургийг олоорой redis bitnami болон хамгийн сүүлийн хувилбарыг суулгана уу:

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  3. Бид татаж авсан контейнер руу орж тохиргоог тохируулна: порт, хуваарилсан хамгийн их RAM хэмжээ, орчны хувьсагчид нууц үгээ зааж, эзлэхүүнийг холбоно.

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  4. Бид үйлдвэрлэлийн савны 2-3-р алхмуудыг гүйцэтгэдэг бөгөөд тохиргоонд бид зөвхөн параметрүүдийг өөрчилдөг: порт, нууц үг, RAM хэмжээ, сервер дээрх эзлэхүүний хавтсанд хүрэх зам:

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

Докерын бүртгэл

Үндсэн үйлчилгээнүүдээс гадна өөрийн Docker зургийн агуулахыг сервер дээр байрлуулах нь сайхан байх болно. Аз болоход серверийн орон зай одоо нэлээд хямд болсон (мэдээж DockerHub-ийн захиалгаас хямд) бөгөөд хувийн репозитор байгуулах үйл явц маш энгийн.

Бид байхыг хүсч байна:

  • нууц үгээр хамгаалагдсан Docker репозиторыг дэд домайн дээр ашиглах боломжтой https://docker.helloworld.ru;
  • Хадгалах газарт байгаа зургуудыг үзэх UI-г эндээс авах боломжтой https://docker-ui.helloworld.ru.

Үүнд:

  1. Захиалга дээрээ Plesk-д docker.helloworld.ru болон docker-ui.helloworld.ru гэсэн хоёр дэд домайн үүсгэж, тэдэнд зориулсан Let's Encrypt сертификатуудыг тохируулцгаая.
  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-ийн дагуу бид Docker репозитор дахь үндсэн зөвшөөрлийн .htpasswd файлыг үүсгэнэ.
    htpasswd -bBc .htpasswd hw_docker_admin hw_docker_password
  4. Савыг цуглуулах, өргөх:
    docker-compose up -d
  5. Мөн бид Nginx-ийг контейнерууд руугаа дахин чиглүүлэх хэрэгтэй. Үүнийг Plesk-ээр дамжуулан хийж болно.

docker.helloworld.ru болон docker-ui.helloworld.ru дэд домайнуудын хувьд дараах алхмуудыг хийх шаардлагатай.

хэсэг Dev хэрэгслүүд манай сайт руу орно Докерын прокси дүрмүүд:

Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
Мөн манай контейнерт ирж буй урсгалыг прокси болгох дүрмийг нэмнэ үү:

Flask+Angular төслийн Github үйлдлийн систем дэх 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 дэд домайныг шалгаж үзье:

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
    Хадгалах газруудыг үзэх дээр дарахад хөтөч нь зөвшөөрлийн цонхыг харуулах бөгөөд та хадгалах сангийн хэрэглэгчийн нэр, нууц үгээ оруулах шаардлагатай болно. Үүний дараа бид хадгалах газрын жагсаалт бүхий хуудас руу шилжих болно (одоогоор энэ нь таны хувьд хоосон байх болно):

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

Plesk Firewall дахь портуудыг нээж байна

Бүрэлдэхүүн хэсгүүдийг суулгаж, тохируулсны дараа бид портуудыг нээх хэрэгтэй бөгөөд ингэснээр бүрэлдэхүүн хэсгүүдэд Docker контейнер болон гадаад сүлжээнээс хандах боломжтой болно.

Өмнө нь суулгасан Plesk-ийн Firewall өргөтгөлийг ашиглан үүнийг хэрхэн хийхийг харцгаая.

  1. Руу явах Хэрэгсэл & Тохиргоо > Тохиргоо > Галт хана:
    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
  2. Руу явах Plesk галт ханын дүрмийг өөрчлөх > Тусгай дүрэм нэмэх болон Docker дэд сүлжээнд дараах TCP портуудыг нээнэ үү (172.0.0.0 / 8):
    RabbitMQ: 1883, 4369, 5671-5672, 25672, 61613-61614
    Redis: 32785, 32786

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  3. Бид мөн PostgreSQL портууд болон RabbitMQ удирдлагын самбаруудыг гадаад ертөнцөд нээх дүрмийг нэмж оруулах болно.

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  4. Өөрчлөлт оруулах товчийг ашиглан дүрмийг хэрэгжүүлнэ үү:

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

Github Actions дээр CI/CD-г тохируулж байна

Хамгийн сонирхолтой хэсэг рүүгээ орцгооё - тасралтгүй интеграцийн шугамыг бий болгож, төслөө серверт хүргэх.

Энэ хоолой нь хоёр хэсгээс бүрдэнэ.

  • зураг бүтээх, туршилтуудыг ажиллуулах (арын хэсэгт) - Github тал дээр;
  • шилжилт хөдөлгөөн хийх (арын хэсэгт) болон контейнер байрлуулах - сервер дээр.

Plesk-д байршуулах

Эхлээд хоёр дахь цэгийг авч үзье (учир нь эхнийх нь үүнээс хамаарна).

Бид Plesk-д зориулсан Git өргөтгөлийг ашиглан байршуулах процессыг тохируулах болно.

Backend репозиторын Prod орчинтой жишээг авч үзье.

  1. Бид Hellouorld вэб сайтын захиалга руу ороод Git дэд хэсэгт очно.

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  2. Манай Github репозиторын холбоосыг "Remote Git repository" талбарт оруулаад үндсэн фолдерыг өөрчилнө үү. httpdocs нөгөө рүү (жишээ нь. /httpdocs/hw_back):

    Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

  3. Өмнөх алхамаас SSH Нийтийн түлхүүрийг хуулна уу нэмэх Энэ нь Github тохиргоонд байдаг.
  4. 2-р алхам дээр дэлгэцэн дээр OK товчийг дарсны дараа бид Plesk дахь хадгалах газрын хуудас руу шилжих болно. Одоо бид репозиторыг мастер салбар руу илгээх амлалтууд дээр шинэчлэхээр тохируулах хэрэгтэй. Үүнийг хийхийн тулд хаягаар очно уу Хадгалах сангийн тохиргоо мөн утгыг хадгалах Webhook URL (Бидэнд дараа нь Github үйлдлүүдийг тохируулах үед хэрэг болно):

    Flask+Angular төслийн Github үйлдлийн систем дэх 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} - сервер дээрх нөөц хадгалах сангийн prod хавтас руу очих зам;
    {ENV} - орчин (dev / prod), манай тохиолдолд prod;
    {DOCKER_REGISTRY_HOST} - манай докерын агуулахын хост
    {TG_BOT_TOKEN} — Telegram ботын токен;
    {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. Манай захиалгаас хэрэглэгчийг Docker бүлэгт нэмнэ үү (тэд контейнер удирдах боломжтой):
    sudo usermod -aG docker helloworld_admin

Backend repository болон frontend-д зориулсан хөгжүүлэлтийн орчинг ижил аргаар тохируулсан.

Github үйлдлийн системд байршуулах хоолой

Github Actions дахь CI/CD дамжуулах хоолойн эхний хэсгийг тохируулах руу шилжье.

Арын арын хэсэг

Дамжуулах хоолойн талаар тайлбарласан болно deploy.yml файл.

Гэхдээ үүнийг задлан шинжлэхээсээ өмнө Github дээр хэрэгтэй нууц хувьсагчдыг бөглөцгөөе. Үүнийг хийхийн тулд хаягаар очно уу Тохиргоо -> Нууцууд:

  • DOCKER_REGISTRY - манай Docker репозиторын хост (docker.helloworld.ru);
  • DOCKER_LOGIN - Docker репозитор руу нэвтрэх;
  • DOCKER_PASSWORD - түүнд нэвтрэх нууц үг;
  • DEPLOY_HOST — Plesk админ самбар ашиглах боломжтой хост (жишээ нь: helloworld.ru: 8443 эсвэл 123.4.56.78:8443);
  • DEPLOY_BACK_PROD_TOKEN - сервер дээрх prod-repository-д байршуулах токен (бид үүнийг Plesk-д байршуулах 4-р хуудаснаас авсан);
  • DEPLOY_BACK_DEV_TOKEN - сервер дээрх dev repository-д байршуулах токен.

Байршуулах үйл явц нь энгийн бөгөөд гурван үндсэн алхамаас бүрдэнэ.

  • манай агуулах дахь зургийг бүтээх, нийтлэх;
  • шинээр баригдсан зураг дээр үндэслэн саванд туршилт хийх;
  • салбараас хамааран хүссэн орчинд байршуулах (dev/master).

урд хэсэг

Урд репозиторын deploy.yml файл Бэкийнхээс арай өөр. Энэ нь туршилтыг ажиллуулах алхам дутмаг бөгөөд байршуулах токенуудын нэрийг өөрчилдөг. Дашрамд хэлэхэд, урд талын агуулахын нууцыг тусад нь бөглөх шаардлагатай.

Сайтын тохиргоо

Nginx-ээр дамжуулан прокси хийх

За, бид төгсгөлд ирлээ. Nginx-ээр дамжуулан манай контейнерт ирж буй болон гарч буй траффикийн проксиг тохируулахад л үлддэг. Бид энэ үйл явцыг Docker Registry тохиргооны 5-р алхамд аль хэдийн авч үзсэн. Хөгжүүлэгч болон үйлдвэрлэлийн орчинд арын болон урд хэсгүүдийн хувьд ижил зүйлийг давтах ёстой.

Би тохиргооны дэлгэцийн агшинг өгөх болно.

Арын арын хэсэг

Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD

урд хэсэг

Flask+Angular төслийн Github үйлдлийн систем дэх CI/CD
Дахин хэлэхэд. -ээр эхэлсэнээс бусад бүх URL-ууд урд талын контейнерт прокси хийгдэнэ /api/ - тэд арын саванд прокситэй байх болно (ийм арын саванд, бүх зохицуулагч нь эхлэх ёстой /api/).

Үр дүн

Одоо манай сайт helloworld.ru болон dev.helloworld.ru (prod- and dev-environments тус тус) дээр байх ёстой.

Нийтдээ бид Flask болон Angular программ дээр энгийн програм бэлтгэж, Github Actions программ дээр Plesk ажиллуулж байгаа серверт дамжуулах шугамыг суулгаж сурсан.

Би хадгалах газруудын холбоосыг дараах кодоор хуулбарлах болно. backend, урд хэсэг.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх