Skip to content

Стеки ​

Приложения в Selenite разворачиваются как стеки — наборы контейнеров, описанных в файле compose.yml. Запускает их Podman Compose, а формат файла — стандартный Compose Spec, поэтому готовые compose-файлы из документаций приложений работают без переделок. Все контейнеры выполняются в rootless-режиме, от имени непривилегированного пользователя.

Как это работает ​

Стек разворачивается одной командой — compose.yml передаётся по SSH через stdin:

bash
ssh server stack deploy myapp < compose.yml

Если стек с таким именем уже существует, он обновляется до новой версии файла. Повторный деплой — это тот же способ обновить приложение.

Дальше есть обычные операции: посмотреть список стеков, состояние контейнеров, логи, остановить и запустить стек, удалить его. Полный список — в справочнике команд stack.

Пример compose.yml ​

yaml
services:
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_password
    volumes:
      - db_data:/var/lib/postgresql/data
    restart: unless-stopped

secrets:
  db_password:
    external: true

volumes:
  db_data:

В примере используются secrets и volumes, которые создаются через команды группы infra — подробнее в разделе Секреты, тома и сети.

TIP

Рекомендуйте restart: unless-stopped или always — тогда контейнеры автоматически поднимутся после перезагрузки машины.

WARNING

Команда stack remove необратима: файл compose.yml удаляется. Тома при этом сохраняются — их можно очистить отдельно через infra volume prune.