Перейти к содержимому

Начало работы

Первое знакомство с DWE: зайти в проект, запустить пайплайн деплоя, поднять стек и прочитать информационную панель.

Проект DWE — это любая директория с workspace.yml в корне. CLI автоматически находит её, поднимаясь вверх от текущей рабочей директории.

Минимальный скелет проекта:

my-project/
├── workspace.yml
└── workspace/
├── defaults.yml
└── services/
└── web/
└── service.yml

workspace.yml объявляет идентификацию проекта:

project:
name: my-project
prefix: myprefix

workspace/defaults.yml задаёт значения по умолчанию для runtime и карту переключений опциональных сервисов:

runtime:
use_https: false
services:
web:
enabled: true

workspace/services/web/service.yml объявляет один сервис:

type: app
container: my-project-web
compose:
- compose/services/web.yml
dir: services/web
dirs:
- logs
ports:
http: 80
hosts:
web: my-project.localhost

Перейдите в проект и подтвердите, что CLI его распознаёт:

Окно терминала
cd my-project
dwe validate

dwe validate запускает проверки готовности проекта: env-пробы, декларативные проверки и валидаторы по доменам (сервисы, deploy, info, styles, …). Завершается с ненулевым кодом, если какая-то проверка падает. См. validate.yml для каталога проверок.

Пайплайн деплоя устанавливает, настраивает и мигрирует прикладные сервисы. Он декларативен — workspace/deploy.yml перечисляет фазы и шаги. Если файла нет, DWE использует встроенный пайплайн по умолчанию, который встраивает собственный workspace/services/<name>/deploy.yml каждого включённого сервиса, запускает docker up --wait и выводит информационную панель.

Просмотрите разрешённый план перед запуском:

Окно терминала
dwe deploy plan

deploy plan только читает данные. Он загружает оркестратор и каждый включённый сервисный пайплайн, раскрывает шаблоны и цепочки extends:, применяет топологический порядок из after: и печатает итоговое дерево фаз/шагов, ничего не выполняя.

Выполните деплой:

Окно терминала
dwe deploy run

Запуск показывает статус фаз и шагов маркерами ✓ ✗ ◎ · и дублирует вывод в .dwe/logs/deploy.log. Состояние пишется в .dwe/deploy/state.yml, чтобы повторные запуски пропускали шаги, у которых action_hash и входы не изменились — см. Состояние и блокировки.

Минимальный workspace/deploy.yml выглядит так:

log: true
phases:
- name: services
deploy_services: true
- name: start
steps:
- name: docker-up
type: dwe
cmd: docker up --wait

Маркер deploy_services: true говорит оркестратору встроить в этой точке workspace/services/<name>/deploy.yml каждого включённого сервиса в топологическом порядке. Фаза start затем поднимает стек через Docker Compose. Все поддерживаемые типы шагов и билтины — см. в deploy.yml.

dwe run управляет жизненным циклом, определённым в workspace/lifecycle.yml:

Окно терминала
dwe run

Порядок выполнения: опциональная проверка обновлений Git → before-run хуки → docker compose updocker compose wait → after-run хуки → опциональный вывод info → финальное сообщение о готовности.

Используйте --no-update, чтобы пропустить проверку обновлений Git на чистой выгрузке, или --update on, чтобы её принудительно включить:

Окно терминала
dwe run --no-update
dwe run --update on

Правило приоритета: --no-update > --update > верхнеуровневый update.mode после мерджа — см. блок update:.

Остановите стек через dwe stop (запускает before-stop хуки → docker compose downafter-stop хуки). Перезапустите через dwe restart (stop + run с флагом --no-update).

Информационная панель читает workspace/info.yml и рендерит проектный контекст: заголовок проекта, URL и хосты включённых сервисов, группы команд и любые кастомные секции.

Окно терминала
dwe info

По умолчанию DWE запускает info автоматически в конце run и deploy run. Отдельная команда выводит те же данные по требованию.

info.yml поддерживает элементы type: auto-urls и type: auto-hosts, которые раскрываются во время рендеринга из карт ports: и hosts: каждого включённого сервиса — поэтому панель остаётся синхронизированной с оверлеями сервисов без ручных правок. См. info.yml.

  • Архитектура — как cli/, core/ и shared/ устроены вместе; что встроено, а что читается в runtime.
  • Раскладка проекта — для чего каждая папка в workspace/ и что генерируется в .dwe/.
  • Пайплайны — модель выполнения phase / step / condition, общая для deploy, reset и lifecycle.
  • Интеграция с Docker — сборка compose-файлов, формирование имени проекта, случаи обхода lifecycle.
  • Состояние и блокировки — что записывает state.yml, как deploy.lock и snapshot.lock сериализуют изменения.
  • Справочник по конфигурации — справочник на уровне полей, когда уже понятна общая структура системы.
  • Запустите dwe docs для того же содержимого в интерактивном браузере или dwe docs llms-txt для компактного индекса для AI-агента.