Перейти до основного вмісту

Огляд сервісів

Кожен Playspec визначає один або кілька сервісів — окремі контейнери, що складають ваше середовище розробки. Сервіси класифікуються на два типи, що визначають як вони збираються, запускаються та керуються.

Типи сервісів

Статичні сервіси

Статичний сервіс запускає готовий Docker-образ без монтування вихідного коду.

ФункціяСтатичний сервіс
Монтування вихідного коду❌ Ні
Автосинхронізація (git pull)❌ Ні
Перемикання Production-режиму❌ Ні
Потребує Playzone❌ Ні

Використовуйте для: Баз даних, кешів, брокерів повідомлень та інших інфраструктурних компонентів, що запускають незмінні Docker-образи.

Приклади: postgres:16, redis:7, rabbitmq:3-management, elasticsearch:8

Динамічні сервіси

Динамічний сервіс підтримується вихідним кодом з Playzone. Він підтримує два режими роботи:

Dev-режим (за замовчуванням)

ФункціяDev-режим
Монтування вихідного коду✅ Так — код монтується в контейнер у налаштовану робочу директорію
Автосинхронізація (git pull)✅ Так — Playguard витягує нові коміти, коли робоче дерево чисте
Git-операції✅ Так — commit, push, pull прямо з терміналу контейнера

Production-режим

ФункціяProduction-режим
Монтування вихідного коду❌ Ні — сервіс працює з зібраного Docker-образу
Автосинхронізація (git pull)❌ Ні
Автоматична перезбірка✅ Так — Playguard ініціює перезбірку при виявленні нових комітів

Див. Розширена конфігурація для деталей перемикання production-режиму.

Потік класифікації сервісів

Коли ви надаєте Docker Compose YAML для створення Playspec, платформа:

  1. Парсить YAML та витягує визначення всіх сервісів
  2. Показує кожен сервіс для класифікації
  3. Вимагає позначити кожен сервіс як static або dynamic
  4. Перевіряє що динамічні сервіси мають привʼязаний Playzone, шлях до Dockerfile та робочу директорію
  5. Перевіряє що статичні сервіси мають вказаний образ

Відображення контейнерів

Платформа зіставляє кожне імʼя сервісу у вашому Compose YAML з Docker-контейнером. Результуючі контейнери слідують конвенціям іменування Docker Compose під імʼям compose-проєкту Playground:

{compose_project}_{service_name}_1

Наприклад, сервіс з імʼям web у Playground з проєктом pg-42-my-app буде працювати як pg-42-my-app_web_1.

Сервіси спілкуються між собою через стандартну мережу Docker Compose — використовуйте імʼя сервісу як hostname для внутрішнього зʼєднання (напр., db, redis, web).