Огляд сервісів
Кожен 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, платформа:
- Парсить YAML та витягує визначення всіх сервісів
- Показує кожен сервіс для класифікації
- Вимагає позначити кожен сервіс як
staticабоdynamic - Перевіряє що динамічні сервіси мають привʼязаний Playzone, шлях до Dockerfile та робочу директорію
- Перевіряє що статичні сервіси мають вказаний образ
Відображення контейнерів
Платформа зіставляє кожне імʼя сервісу у вашому 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).