Sobes.tech
Junior

GitLab CI-дегі 'қызметтер' бірлігі не?

sobes.tech AI

AI-дан жауап

GitLab CI-дегі services ұғымы — бұл тапсырма орындалу кезінде іске қосылатын қосымша контейнерлерді анықтау тәсілі. Әдетте, бұл контейнерлер сыртқы сервистер үшін пайдаланылады, олар негізгі тапсырма контейнерінің жұмыс істеуі үшін қажет, мысалы, дерекқорлар, хабарламалар брокері немесе кэш.

Негізгі тұстар:

  • Тапсырманың тәуелділіктері: Сервистер script қадамының орындалуы үшін қажетті тәуелділіктерді қамтамасыз етеді.
  • Бөлек орта: Әрбір сервис өз жеке контейнерінде іске қосылады, ол басқа сервистер мен негізгі тапсырма контейнерінен оқшауланған.
  • Аты бойынша қол жеткізу: GitLab Runner автоматты түрде тапсырма контейнерін сервистер контейнерлерімен байланыстырады. Тапсырма контейнері сервистерге олардың псевдонимдері арқылы (немесе егер псевдоним көрсетілмесе, образ атауы арқылы) қол жеткізе алады.
  • Шектеулер: Сервистердің саны мен ресурстары GitLab Runner баптаулары арқылы шектелуі мүмкін.

Пайдалану мысалы:

# .gitlab-ci.yml
test_job:
  image: python:3.9
  services:
    - name: postgres:latest # Сервис образ атауы
      alias: db # Негізгі контейнерден қол жеткізу үшін псевдоним

  script:
    # Негізгі контейнерден дерекқорға қосылу мысалы
    - pip install psycopg2-binary
    - python -c "import psycopg2; conn = psycopg2.connect(host='db', user='postgres', password='mysecretpassword', database='mydatabase'); print('Дерекқорға сәтті қосылды!')" # 'db' псевдонимі арқылы қол жеткізу

Бұл мысалда test_job тапсырмасы Python образын пайдаланады. Өзінің орындалуы үшін оған PostgreSQL дерекқоры қажет. services бөлімінде GitLab Runner-ге postgres:latest образымен контейнерді іске қосу және оны негізгі тапсырма контейнерінде db псевдонимімен қол жетімді ету тапсырылған. Тапсырма скрипті содан кейін дерекқорға осы псевдоним арқылы жүгінеді.