Top.Mail.Ru
Создание приложения по шаблону | Tarantool
Tarantool
Узнайте содержание релиза 2.8
Tarantool Cartridge Cartridge CLI Команды Cartridge CLI Создание приложения по шаблону

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

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

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

cartridge create [path] [flags]

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

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

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

По умолчанию используется шаблон cartridge. В результате создается простое приложение на Cartridge, которое содержит следующие компоненты:

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

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

В директории <имя_приложения>/ находятся такие файлы:

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

    • app/roles/custom-role.lua — пример пользовательской роли с простым API для HTTP. Эту роль можно запустить как 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 — это директория для временных файлов, используемая как директория /run (см. .cartridge.yml).
    • .git — это директория для Git-репозитория.
    • В файле .gitignore можно указать файлы, игнорируемые Git.
    • В файле env.lua задаются общие пути для модулей, чтобы приложение можно было запустить из любой директории.
  • Файлы для тестирования (с примерами тестов):

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-приложения (<app-name>-stateboard).
  • Path — абсолютный путь к приложению.

Пример:

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

init.lua:

print("Hi, I am {{ .Name }} application")
print("I also have a stateboard named {{ .StateboardName }}")