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

Playspec

Playspec — це блюпринт, що визначає структуру вашого середовища розробки. Він обгортає Docker Compose файл, класифікує кожен сервіс та збагачує його конфігурацією платформи — маршрутизацією та монтуванням вихідного коду.

Огляд

Уявіть Playspec як шаблон середовища, що можна використовувати повторно. Ви визначаєте його один раз, а потім запускаєте скільки завгодно Playground з нього — кожен Playground є незалежним, запущеним екземпляром того самого Playspec.

Конфігурація

ПолеОпис
НазваЗрозуміла назва для цього Playspec
ОписНеобовʼязковий опис (до 1000 символів)
Docker Compose YAMLБазовий docker-compose.yml, що визначає ваші сервіси
СервісиКласифікований список сервісів (див. нижче)
Persist VolumesЧи зберігати Docker-томи при пересозданні Playground

Docker Compose визначення

Кожен Playspec починається зі стандартного Docker Compose YAML. Ви можете:

  • Написати вручну у вбудованому YAML-редакторі
  • Завантажити з Playzone — Якщо ваш репозиторій містить docker-compose.yml, платформа автоматично його виявить та імпортує
  • Імпортувати з шаблону — Використайте готовий шаблон з Stargate або My Fleet

Платформа парсить та валідує Compose-файл, витягуючи визначення сервісів, порти та іншу конфігурацію.

Класифікація сервісів

Після надання Compose YAML ви маєте класифікувати кожен сервіс як статичний або динамічний:

ТипОписПриклад
СтатичнийСтандартний Docker-контейнер з готовим образом. Без монтування вихідного коду.PostgreSQL, Redis, Elasticsearch
ДинамічнийСервіс з вихідним кодом. Підтримує Dev-режим (живе редагування) та Production-режим (зібраний образ).Ваш веб-додаток, API-сервер, worker

Конфігурація динамічного сервісу

Кожен динамічний сервіс вимагає додаткової конфігурації:

ПолеОписЗа замовчуванням
PlayzoneЯкий GitHub-репозиторій надає вихідний код
Шлях до DockerfileШлях до Dockerfile у репозиторіїDockerfile
Шлях до Env FileШлях до .env.example для змінних середовища за замовчуванням.env.example
Робоча директоріяРобоча директорія контейнера, куди монтується вихідний код/app

Конфігурація статичного сервісу

Статичні сервіси вимагають лише імʼя образу (напр., postgres:16, redis:7).

Відкриття сервісів

Кожен сервіс може бути відкритий для мережі з такими налаштуваннями:

ПолеОписЗа замовчуванням
УвімкненоЧи доступний сервіс через HTTPfalse
ПортПорт контейнера для відкриття80
СубдоменПрефікс субдомену для URL сервісуІмʼя сервісу
ВидимістьРівень контролю доступуinternal

Параметри видимості

ВидимістьПоведінка
ExternalПублічно доступний — будь-хто з URL може отримати доступ до сервісу
InternalЗахищений HTTP Basic Auth — вимагає імʼя користувача та пароль Playground
Іменування субдоменів

Субдомени визначаються на рівні Playspec як значення за замовчуванням, але можуть бути перевизначені для кожного Playground. Це дозволяє кільком Playground з одного Playspec співіснувати на одному Playroom без конфліктів субдоменів.

Монтовані файли

Ви можете прикріпити до 50 файлів (максимум 500 МБ кожен) до Playspec. Ці файли синхронізуються на віддалений хост та монтуються у вказані сервіси. Типові випадки використання:

  • Конфігураційні файли (напр., nginx.conf, .env.production)
  • SSL-сертифікати
  • Файли з початковими даними

Кожен монтований файл налаштовується з:

  • Шлях монтування — Абсолютний шлях всередині контейнера
  • Цільові сервіси — Які сервіси отримують монтування
  • Тільки для читання — Чи є монтування тільки для читання (за замовчуванням: так)

Облікові дані реєстру

Якщо ваші сервіси використовують образи з приватних Docker-реєстрів, ви можете додати облікові дані до Playspec. Платформа використовує ці дані для автентифікації операцій docker pull на Playroom.

Augmented Compose Template

При збереженні Playspec платформа генерує augmented compose template — збагачену версію вашого оригінального Compose YAML, що включає:

  • Мітки маршрутизації Traefik для кожного відкритого сервісу
  • Мережеву конфігурацію для ізоляції сервісів та ingress
  • Монтування томів для вихідного коду
  • Змінні середовища платформи

Цей шаблон використовується внутрішньо і не може бути редагований безпосередньо. Він перегенеровується при зміні сервісів Playspec.

Заблокований статус

Playspec стає заблокованим, коли на нього посилається будь-який Playground. Поки заблоковано:

  • Docker Compose YAML, сервіси, монтовані файли та облікові дані реєстру не можуть бути змінені
  • Назва та опис можуть бути оновлені
  • Playspec не може бути видалений

Щоб розблокувати Playspec, видаліть усі Playground, що на нього посилаються.

Збереження стану

Коли Persist Volumes увімкнено, Playspec вважається stateful. Це означає:

  • Docker-томи зберігаються при пересозданні Playground
  • Імена томів мають префікс pv-{playspec_id}-{playroom_id} для ізоляції
  • Лише один Playground на комбінацію Playspec+Playroom може існувати одночасно (для запобігання конфліктів томів)

Коли вимкнено, томи знищуються та створюються заново при кожному пересозданні Playground.

Ліміти ресурсів

ЛімітЗначення
Максимум Playspec на акаунт1 000
Максимум монтованих файлів на Playspec50
Максимальний розмір файлу500 МБ на файл