compose apply
Команда создаёт и обновляет ресурсы проекта на основе конфигурационного файла. Выполняет декларативное применение конфигурации: создаёт отсутствующие ресурсы, обновляет существующие и удаляет ресурсы, помеченные состоянием absent.
dockhost compose apply [path] [options]
Опции
| Опция | Описание | Обязательно | По умолчанию |
|---|---|---|---|
| -f, --file | Путь к файлу конфигурации | Нет | dockhost.yaml |
| --json | JSON-строка с конфигурацией (альтернатива файлу) | Нет | |
| -p, --project | Имя проекта | Нет | Текущий проект |
| --force | Принудительное обновление существующих ресурсов | Нет | false |
| --no-merge | Отключить слияние существующих параметров контейнера с конфигурацией | Нет | false |
| --image-update-only | Обновлять только образ контейнера, остальные параметры не трогать | Нет | false |
| --skip-volume | Пропустить создание и обновление volumes | Нет | false |
Аргументы
| Аргумент | Описание |
|---|---|
| [path] | Путь к файлу конфигурации (альтернатива --file) |
Проект определяется в порядке приоритета: опция --project → поле project в конфиге → текущий проект.
Ресурсы обрабатываются в строгом порядке для корректного создания зависимостей: сначала удаляются зависимые ресурсы (порты, маршруты, сервисы), затем создаются базовые (volumes, домены), затем контейнеры, затем ресурсы, зависящие от контейнеров.
Состояния ресурсов
Каждый ресурс в конфигурации может иметь поле state:
| Состояние | Поведение |
|---|---|
present |
Создать ресурс, если отсутствует; обновить, если существует (по умолчанию) |
absent |
Удалить ресурс, если существует |
started |
Создать/обновить контейнер и запустить его |
stopped |
Создать/обновить контейнер (без запуска) |
paused |
Создать/обновить контейнер и остановить его |
restarted |
Создать/обновить контейнер и перезапустить его |
Состояния started, stopped, paused, restarted применимы только к контейнерам.
Примеры
Применение конфигурации из файла по умолчанию:
> dockhost compose apply
Apply configuration...
Create volume data...
- Created
Create container app...
- Created container app, replicas 1
Create service app...
- Created service app, with ports: 80/TCP
Применение конфигурации из указанного файла:
dockhost compose apply myproject.yaml
Применение конфигурации для конкретного проекта:
dockhost compose apply --project myproject dockhost.yaml
Принудительное обновление всех ресурсов:
dockhost compose apply --force
Обновление только образов контейнеров:
dockhost compose apply --image-update-only