Top.Mail.Ru
Сборка в Docker | Tarantool
Tarantool
Узнайте содержание релиза 2.8

Сборка в Docker

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

cartridge pack --use-docker

Вам может понадобиться собрать приложение в 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 будут в любом случае установлены на следующем слое.