Сборка в Docker
Чтобы собрать приложение в Docker, выполните следующую команду:
cartridge pack TYPE --use-docker
Вместо TYPE
укажите rpm
, deb
или tgz
.
Вам может понадобиться собрать приложение в Docker, если ваш дистрибутив предназначен для системы, отличной от той, что вы используете.
В этом случае cartridge.pre-build
, tarantoolctl rocks make
и cartridge.post-build
будут запущены в Docker-образе. Том (Docker volume) этого образа будет привязан к директории сборки. В результате директория сборки будет содержать специфичные для Linux файлы приложения и модули rocks
.
Если вы хотите собрать дистрибутив на вашей локальной машине без использования Docker, обратитесь к странице с описанием команды pack.
--build-from |
Путь к базовому файлу Dockerfile сборочного образа. По умолчанию это Dockerfile.build.cartridge в корневой директории приложения. |
--cache-from |
Образы, которые служат источниками кэша и для сборочного, и для запускаемого образа. Ознакомьтесь с работой параметра --cache-from команды docker build . |
--sdk-path |
Только для Tarantool Enterprise. Путь к SDK, включаемому в итоговый артефакт. Этот путь можно также передать с помощью переменной среды TARANTOOL_SDK_PATH , однако у нее ниже приоритет. |
--sdk-local |
Только для Tarantool Enterprise. Используется, чтобы включить SDK с локальной машины в итоговый артефакт. |
Примечание
Собирая приложение на Tarantool Enterprise в Docker, убедитесь, что вы указали путь к SDK для включения в образ. Можно задать путь с помощью параметра --sdk-path
или использовать переменную среды TARANTOOL_SDK_PATH
, имеющую более низкий приоритет. Чтобы выбрать текущий SDK, передайте параметр --sdk-local
.
Сборочным образом мы будем называть образ, который используется для сборки пакета. Он имеет следующую структуру:
- Базовый образ:
centos:7
(подробности далее). - Предустановленные пакеты:
git
,gcc
,make
,cmake
иunzip
. Эти пакеты необходимы для сборки приложенияcartridge
. - Образ будет включать одну из версий Tarantool:
- Если вы используете для локальной разработки версию Tarantool с открытым исходным кодом, образ будет содержать ту же версию.
- Если вы используете Tarantool Enterprise, в образ будет скопирован SDK, содержащий бинарные файлы Tarantool Enterprise. Обратитесь к описанию параметров
--sdk-path
и--sdk-local
выше.
Изменить настройки сборочного образа можно в файле Dockerfile.build.cartridge
в корневой директории приложения.
По умолчанию сборочный образ основан на centos:7
и включает предустановленные пакеты git
, gcc
, make
, cmake
и unzip
. Если для сборки приложения требуются другие пакеты, вы можете задать для сборочного образа дополнительные базовые слои (Docker layers).
Разместите файл Dockerfile.build.cartridge
в корневой директории вашего приложения или передайте путь к другому Dockerfile с помощью параметра --build-from
. Убедитесь, что ваш Dockerfile начинается со строки FROM centos:7
(не считая комментариев).
Например, если для сборки приложения требуется gcc-c++
, в Dockerfile должны быть следующие строки:
Dockerfile.build.cartridge
:FROM centos:7 RUN yum install -y gcc-c++ # Обратите внимание, что git, gcc, make, cmake и unzip # будут установлены в любом случае
Примечание
Пакеты git
, gcc
, make
, cmake
и unzip
будут в любом случае установлены на следующем слое.