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

Розширена конфігурація

Ця сторінка описує розширені параметри конфігурації сервісів, доступні при створенні та керуванні Playground.

Production-режим

Динамічні сервіси можна перемикати між Dev-режимом (за замовчуванням) та Production-режимом для кожного сервісу та кожного Playground.

АспектDev-режимProduction-режим
Вихідний кодМонтується з Git-клонуНе монтується — працює з зібраного образу
Автосинхронізаціяgit pull для чистих гілокБез синхронізації — перезбірка при нових комітах
ОбразБазовий образ з DockerfileПовністю зібраний образ з BuildRecord
Live reloadПідтримується (залежить від фреймворку)Не застосовується

Коли використовувати Production-режим

  • Фронтенд-сервіси, що вимагають кроку збірки (напр., React, Next.js)
  • Сервіси з довгою компіляцією при запуску (напр., компільовані мови)
  • Симуляція production-подібного розгортання
  • Валідація CI/CD — перевірка коректної роботи зібраного образу

Процес збірки

Коли сервіс у Production-режимі, платформа:

  1. Виявляє нові коміти на налаштованій гілці
  2. Збирає Docker-образ за допомогою Dockerfile сервісу на Playroom
  3. Зберігає BuildRecord з посиланням на образ
  4. Використовує останній успішно зібраний образ при запуску контейнера

Команда запуску

Команда запуску для динамічного сервісу в 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 визначає базовий образ для розробки
ПолеЗа замовчуванням
Шлях до DockerfileDockerfile

Якщо ваш Dockerfile знаходиться у піддиректорії (напр., docker/Dockerfile.dev), оновіть цей шлях відповідно.

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

Вибір гілки

При створенні Playground кожен динамічний сервіс може використовувати іншу гілку з свого Playzone:

  • За замовчуванням — Використовує гілку Playzone за замовчуванням (зазвичай main)
  • Нестандартна — Оберіть будь-яку існуючу гілку з репозиторію

Створення нової гілки

Ви можете створити нову гілку прямо з форми створення Playground:

  1. Увімкніть Create Branch для сервісу
  2. Вкажіть базову гілку для відгалуження
  3. Введіть назву нової гілки

Платформа створює гілку на віддаленому хості під час створення 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.

Логи

Кожен сервіс надає потокове відтворення логів у реальному часі:

Логи контейнерів

Доступ до логів окремих контейнерів через:

Логи отримуються напряму з Docker та підтримують пагінацію tail (за замовчуванням: 100 рядків, максимум: 1000 рядків).

Логи Playground

Логи створення та життєвого циклу передаються в реальному часі через WebSocket під час створення Playground. Вони показують прогрес кожного етапу створення (запуск Traefik, клонування, збірка, compose up).