TDB Documentation portal logo
Помощь
Обновлена 30 июля 2026 г. в 16:49

Запуск кластера в CI

При работе в CI возникает необходимость запускать Docker в Docker или другой виртуальной среде. В примере описано, как при таком подходе решить возможную проблему с передачей локальной папки в Docker-образ.

Содержание:

Пререквизиты

Для выполнения примера требуются:

  • установленный Docker-образ Tarantool DB;

  • приложение Docker compose;

  • исходные файлы примера up_in_ci.

Запуск стенда

Перейдите в директорию up_in_ci:

cd ./docs/docs/ru/assets/examples/up_in_ci/

Запустите кластер Tarantool DB:

docker compose up -d --build

Контейнер user-host

Контейнер user-host указывается в файле docker-compose.yml. Подробное описание контейнера приводится в руководстве по запуску кластера через Docker compose в разделе Контейнер user-host.

В примере конфигурация контейнера user-host выглядит так:

user-host:build:  context: .  dockerfile: bootstrap.Dockerfilenetworks:  - tarantooldb_networkenvironment:  - TARANTOOLDB_TARGET_URI=tarantool-router:8081working_dir: /bootstrap/command: sh -c "./bootstrap.sh && ./health_check.sh && ./migrate.sh"depends_on:  - tarantool-router  - tarantool-storage1  - tarantool-storage2  - tarantool-storage3  - tarantool-storage4

Здесь:

  • build.context.dockerfile — сборка отдельного контейнера, в который копируются папка bootstrap и пользовательские скрипты;
  • networks— название подсети;
  • environment — задание переменных окружения:
    • TARANTOOLDB_TARGET_URI — адрес, по которому доступны API-команды кластера. Используется скриптами bootstrap.sh, health_check.sh и migrate.sh;
  • working_dir — директория, в которой лежат файл конфигурации и файлы миграций;
  • command — запуск скриптов bootstrap.sh, health_check.sh и migrate.sh;
  • depends_on — секция определяет, что контейнер user-host запускается только после запуска всех остальных узлов кластера;
  • volumes — передача в контейнер директории с настройками кластера и пользовательской логикой, чтобы они стали доступны для скриптов.

Остановка стенда

Остановить стенд можно так:

docker compose down