Розширена конфігурація
Ця сторінка описує розширені параметри конфігурації сервісів, доступні при створенні та керуванні Playground.
Production-режим
Динамічні сервіси можна перемикати між Dev-режимом (за замовчуванням) та Production-режимом для кожного сервісу та кожного Playground.
| Аспект | Dev-режим | Production-режим |
|---|---|---|
| Вихідний код | Монтується з Git-клону | Не монтується — працює з зібраного образу |
| Автосинхронізація | git pull для чистих гілок | Без синхронізації — перезбірка при нових комітах |
| Образ | Базовий образ з Dockerfile | Повністю зібраний образ з BuildRecord |
| Live reload | Підтримується (залежить від фреймворку) | Не застосовується |
Коли використовувати Production-режим
- Фронтенд-сервіси, що вимагають кроку збірки (напр., React, Next.js)
- Сервіси з довгою компіляцією при запуску (напр., компільовані мови)
- Симуляція production-подібного розгортання
- Валідація CI/CD — перевірка коректної роботи зібраного образу
Процес збірки
Коли сервіс у Production-режимі, платформа:
- Виявляє нові коміти на налаштованій гілці
- Збирає Docker-образ за допомогою Dockerfile сервісу на Playroom
- Зберігає
BuildRecordз посиланням на образ - Використовує останній успішно зібраний образ при запуску контейнера
Команда запуску
Команда запуску для динамічного сервісу в Dev-режимі визначається полем command у вашому Docker Compose YAML. Вихідний код монтується у налаштовану робочу директорію (/app за замовчуванням), тому ваша команда виконується проти живого вихідного коду.
services:
web:
build: .
command: bundle exec rails server -b 0.0.0.0
working_dir: /app
Шлях до Dockerfile
Кожен динамічний сервіс вказує шлях до свого Dockerfile у репозиторії. Це використовується для:
- Збірок у Production-режимі — Dockerfile визначає як збирається образ
- Базового образу Dev-режиму — Dockerfile визначає базовий образ для розробки
| Поле | За замовчуванням |
|---|---|
| Шлях до Dockerfile | Dockerfile |
Якщо ваш Dockerfile знаходиться у піддиректорії (напр., docker/Dockerfile.dev), оновіть цей шлях відповідно.
Конфігурація гілок
Вибір гілки
При створенні Playground кожен динамічний сервіс може використовувати іншу гілку з свого Playzone:
- За замовчуванням — Використовує гілку Playzone за замовчуванням (зазвичай
main) - Нестандартна — Оберіть будь-яку існуючу гілку з репозиторію
Створення нової гілки
Ви можете створити нову гілку прямо з форми створення Playground:
- Увімкніть Create Branch для сервісу
- Вкажіть базову гілку для відгалуження
- Введіть назву нової гілки
Платформа створює гілку на віддаленому хості під час створення Playground. Це корисно для feature-гілок або індивідуальних робочих просторів розробників.
Базовий образ (динамічні сервіси)
У Dev-режимі платформа використовує образ, визначений Dockerfile сервісу, як базовий. Вихідний код потім монтується поверх цього базового образу у робочу директорію.
Це означає, що ваш Dockerfile повинен визначати середовище виконання (мову, залежності, системні пакети), а command у Compose-файлі визначає, що запускається.
FROM ruby:3.3
WORKDIR /app
RUN gem install bundler
COPY Gemfile Gemfile.lock ./
RUN bundle install
У Dev-режимі зібраний образ використовується як базовий, і живий вихідний код з Git-гілки монтується у /app, замінюючи крок COPY живим монтуванням.
Build Overrides
Для розширеного налаштування збірки Playground підтримують build overrides — YAML-блок, що обʼєднується з конфігурацією збірки Docker Compose під час виконання.
web:
context: ./backend
args:
NODE_ENV: production
BUNDLE_WITHOUT: development:test
Build overrides дозволяють налаштувати аргументи збірки, шляхи контексту та інші параметри без зміни Playspec.
Логи
Кожен сервіс надає потокове відтворення логів у реальному часі:
Логи контейнерів
Доступ до логів окремих контейнерів через:
- Веб-інтерфейс — Натисніть на сервіс у детальному перегляді Playground
- API —
GET /api/playgrounds/:id/logs/:service
Логи отримуються напряму з Docker та підтримують пагінацію tail (за замовчуванням: 100 рядків, максимум: 1000 рядків).
Логи Playground
Логи створення та життєвого циклу передаються в реальному часі через WebSocket під час створення Playground. Вони показують прогрес кожного етапу створення (запуск Traefik, клонування, збірка, compose up).