Создание приложения по шаблону | Tarantool
Документация на русском языке
поддерживается сообществом
Tarantool Cartridge Cartridge CLI Команды Cartridge CLI Создание приложения по шаблону

Создание приложения по шаблону

Чтобы создать приложение по шаблону, в любой директории выполните следующую команду:

cartridge create [путь] [параметры]

--name Имя приложения.
--from Путь к шаблону приложения (см. ниже).
--template Имя шаблона приложения. В настоящее время поддерживается только шаблон cartridge.

Команда create также поддерживает глобальные параметры.

Приложение создается в директории <путь>/<имя-приложения>/.

Несложное приложение на основе шаблона по умолчанию cartridge содержит следующие компоненты:

  • Пользовательскую роль с конечной точкой для HTTP-запросов.
  • Примеры тестов и базовые утилиты для тестирования.
  • Файлы для разработки, такие как .luacheckrc.

Если у вас установлен git, в корневой директории проекта создается Git-репозиторий с файлом .gitignore. Сразу формируется первоначальный коммит с тегом версии приложения.

В директории <имя_приложения>/ находится несколько групп файлов.

  • Файлы приложения:

    • app/roles/custom-role.lua — пример кластерной роли с простым HTTP API. Эту роль можно включить, передав ее как app.roles.custom.
    • <имя_приложения>-scm-1.rockspec — файл, содержащий зависимости приложения.
    • init.lua — точка входа в приложение.
    • stateboard.init.lua — точка входа в экземпляр stateboard приложения.
  • Файлы, необходимые для сборки и упаковки:

    • cartridge.pre-build
    • cartridge.post-build
    • Dockerfile.build.cartridge
    • Dockerfile.cartridge

    Подробную информацию вы найдете в документации по скриптам pre-build и post-build, сборке приложения с помощью Docker и созданию Docker-образа приложения.

  • Файлы, необходимые для разработки:

    • deps.sh решает проблемы с зависимостями из файла .rockspec и устанавливает зависимости для тестирования (например, luatest).
    • instances.yml содержит конфигурацию экземпляров и используется командой cartridge start.
    • .cartridge.yml содержит конфигурацию Cartridge и используется командой cartridge start.
    • systemd-unit-params.yml содержит параметры systemd.
    • tmp — директория для временных файлов, выступающая в качестве директории запуска (см. .cartridge.yml).
    • .git — директория Git-репозитория.
    • В файле .gitignore можно указать файлы, игнорируемые Git.
  • Файлы, необходимые для тестирования, и примеры тестов:

test
├── helper
│   ├── integration.lua
│   └── unit.lua
│   ├── helper.lua
│   ├── integration
│   │   └── api_test.lua
│   └── unit
│       └── sample_test.lua
  • Файлы конфигурации:
    • .luacheckrc
    • .luacov
    • .editorconfig

По умолчанию команда create задействует стандартный шаблон под названием cartridge. Вы также можете использовать собственный шаблон. Чтобы создать по нему приложение, передайте в команде cartridge create параметр --from, указав в качестве аргумента путь к своему шаблону.

Если шаблон находится в Git-репозитории, при создании приложения по этому шаблону все файлы в директории .git игнорируются. Вместо этого для нового приложения создается новый Git-репозиторий.

Чтобы задать зависимости для приложения, не следует создавать директорию .rocks в своем шаблоне — используйте файлы .rockspec и cartridge.pre-build.

В именах и содержимом файлов можно использовать текстовые переменные.

Доступны следующие переменные:

  • Name — имя приложения.
  • StateboardName — имя экземпляра stateboard (<имя_приложения>-stateboard).
  • Path — абсолютный путь к приложению.

Пример:

my-template
├── {{ .Name }}-scm-1.rockspec
└── init.lua
└── stateboard.init.lua
└── test
    └── sample_test.lua

init.lua:

print("Здравствуйте! Я приложение {{ .Name }}")
print("У меня есть экземпляр stateboard под названием {{ .StateboardName }}")