Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Упаковка приложения

$ tt pack TYPE [OPTION ...] ..

Команда tt pack упаковывает приложение в дистрибутивный пакет указанного TYPE:

  • tgz: создание архива .tgz.
  • deb: создание DEB-пакета.
  • rpm: создание RPM-пакета.

Пример: DEB-пакет

Приведенная ниже команда создает DEB-пакет со всеми приложениями из текущего окружения tt:

$ tt pack deb

Эта команда создает файл .deb, имя которого зависит от имени каталога окружения и архитектуры операционной системы, например, test-env_0.1.0.0-1_x86_64.deb. Пакет содержит следующие файлы:

  • Содержимое каталогов приложений: исходные файлы, ресурсы, зависимости.
  • Файлы окружения tt: исполняемые файлы tarantool и tt, файл конфигурации tt.yaml, внешние модули, заголовочные файлы.
  • Файлы unit-файлов .service для запуска приложений в качестве служб systemd (отдельный файл для каждого приложения).

Команде tt pack можно передавать различные параметры для настройки свойств генерирования, например, задать имя пакета, выбрать включаемые артефакты, указать необходимые зависимости приложения.

Параметры unit-файла systemd

Unit-файл systemd, создаваемый командой tt pack, можно настроить. Чтобы добавить параметры в unit-файл, определите их в YAML-файле с именем systemd-unit-params.yml в каталоге приложения.

$ tt pack rpm # unit-файл с параметрами из systemd-unit-params.yml, если он существует

Также можно передать параметры unit-файла из произвольного файла, добавив параметр --unit-params-file к вызову tt pack:

$ tt pack rpm --unit-params-file my-params.yml # unit file with parameters from my-params.yml" > "# unit-файл с параметрами из my-params.yml

tt pack поддерживает следующие параметры unit-файла systemd:

  • FdLimit – количество открытых файловых дескрипторов (LimitNOFile в unit-файле).
  • instance-env – список переменных окружения в формате <VAR_NAME>: <VALUE>. Каждый элемент списка добавляет строку Environment=<VAR_NAME>=<VALUE> в unit-файл.

Пример файла systemd-unit-params.yml:

FdLimit: 200instance-env:  INSTANCE: "inst:%i"  TARANTOOL_WORKDIR: "/tmp"

Формирование файлов для проверки целостности

Команда tt pack может генерировать контрольные суммы и подписи для проверки целостности при запуске приложения. Эти файлы:

  • hashes.json и hashes.json.sig в каждом каталоге приложения. hashes.json содержит контрольные суммы SHA256 исполняемых файлов, используемых приложением, и его файла конфигурации. hashes.json.sig содержит цифровую подпись для hashes.json.
  • env_hashes.json и env_hashes.json.sig в корневом каталоге окружения – аналогичные файлы для окружения tt. Они содержат контрольные суммы исполняемых файлов Tarantool и tt, а также файла конфигурации tt.yaml.

Для формирования контрольных сумм и подписей для проверки целостности используйте параметр --with-integrity-check. Его аргумент должен быть RSA-закрытым ключом.

Чтобы создать архив tar.gz с артефактами проверки целостности:

$ tt pack tgz --with-integrity-check private.pem

Подробнее о проверке целостности при запуске приложения и во время выполнения см. в описании команды tt start.

Параметры

--all

Включить в пакет все артефакты. В этом случае пакет может включать снимки, WAL-файлы и журналы.

--app-list APPLICATIONS

Указать приложения, включаемые в пакет.

Пример

$ tt pack tgz --app-list app1,app3

--cartridge-compat

Применимо к: tgz

Упаковать архив, совместимый с Cartridge CLI.

--deps STRINGS

Применимо к: deb, rpm

Указать зависимости, включаемые в RPM- и DEB-пакеты.

Пример

$ tt pack deb --deps 'wget,make>0.1.0,unzip>1,unzip<=7'

--deps-file STRING

Применимо к: deb, rpm

Указать путь к файлу, содержащему зависимости, включаемые в RPM- и DEB-пакеты. Например, файл package-deps.txt ниже содержит несколько зависимостей и их версии:

unzip==6.0neofetch>=6,<7gcc>8

Если этот файл находится в текущем каталоге, команда tt pack может выглядеть так:

$ tt pack deb --deps-file package-deps.txt

--filename

Указать имя пакета.

Пример

$ tt pack tgz --filename sample-app.tar.gz

--name PACKAGE_NAME

Указать имя пакета.

Пример

$ tt pack tgz --name sample-app --version 1.0.1

--preinst

Применимо к: deb, rpm

Указать путь к скрипту предустановки для RPM- и DEB-пакетов.

Пример

$ tt pack deb --preinst pre.sh

--postinst

Применимо к: deb, rpm

Указать путь к скрипту постустановки для RPM- и DEB-пакетов.

Пример

$ tt pack deb --postinst post.sh

--tarantool-version

Указать версию Tarantool для упаковки в Docker-контейнер. Используется только с --use-docker.

--unit-params-file

Путь к файлу с пользовательскими параметрами unit-файла systemd.

--use-docker

Собрать пакет в Docker-контейнере с Ubuntu 18.04. Чтобы указать версию Tarantool, используемую в контейнере, добавьте параметр --tarantool-version.

Перед выполнением tt pack с этим параметром убедитесь, что Docker запущен.

--version PACKAGE_VERSION

Указать версию пакета.

Пример

$ tt pack tgz --name sample-app --version 1.0.1

--with-binaries

Включить в пакет бинарные файлы Tarantool и tt.

--with-integrity-check PRIVATE_KEY

Сгенерировать контрольные суммы и подписи для проверки целостности при запуске приложения.

См. также раздел Формирование файлов для проверки целостности.

--with-tarantool-deps

Добавить Tarantool и tt в качестве зависимостей пакета.

--without-binaries

Не включать в пакет бинарные файлы Tarantool и tt.

--without-modules

Не включать в пакет внешние модули.