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

Запуск кластера через Docker Compose

В этом руководстве показано, как развернуть Tarantool DB с помощью Docker compose.

Содержание:

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

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

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

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

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

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

Перейдите в директорию примера up_with_docker_compose:

cd ./docs/docs/ru/assets/examples/up_with_docker_compose/

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

docker compose up -d --build

Используемые файлы

В руководстве используются следующие файлы примера up_with_docker_compose:

  • docker-compose.yml — описание узлов кластера;
  • bootstrap/topology.json — топология кластера;
  • ./tools/client/bootstrap.sh — скрипт, применяющий топологию кластера;
  • bootstrap/config.yml — конфигурация кластера;
  • bootstrap/migrations/source — директория, содержащая файлы с описанием миграций;
  • ./tools/client/migrate.sh — скрипт, применяющий миграции.

Конфигурация контейнера для узла Tarantool DB

Конфигурация контейнера для узла Tarantool DB задается в файле docker-compose.yml:

tarantool-router-msk:    image: tarantooldb:1x-latest    networks:      - tarantooldb_network    ports:      - "8081:8081"      - "3301:3301"    environment:      - TARANTOOL_ADVERTISE_URI=tarantool-router-msk:3301      - TARANTOOL_ALIAS=router-msk

Здесь:

  • image — название Docker-образа, используемого для создания контейнера;

  • networks — название подсети;

  • ports — используемые порты;

  • environment — переменные окружения для опций Tarantool и Cartridge:

    • TARANTOOL_ADVERTISE_URI — адрес и порт, на котором узел доступен в кластере;
    • TARANTOOL_ALIAS — название узла кластера.

    Полный список опций доступен в документации к модулю cartridge.argparse и в описании Docker-образа Tarantool DB.

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

В файле docker-compose.yml есть специальный контейнер user-host. Он выступает в роли компьютера разработчика, с которого выполняются:

  1. Настройка топологии кластера и первоначальный запуск (bootstrap) модуля шардирования vshard.
  2. Загрузка клиентского кода в кластер: описание спейсов и функций (миграции)

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

user-host:    image: tarantooldb:1x-latest    networks:      - tarantooldb_network    environment:      - TARANTOOLDB_TARGET_URI=tarantool-router-msk:8081      - BOOTSTRAP_FAILOVER=1      - TARANTOOLDB_BOOTSTRAP_TIMEOUT=60    working_dir: /usr/share/tarantool/tarantooldb/tools/client/    command: /bin/sh -c "./bootstrap.sh && ./health_check.sh && ./migrate.sh"    depends_on:      - tarantool-router-msk      - tarantool-router-spb      - tarantool-storage-1-msk      - tarantool-storage-1-spb      - tarantool-storage-2-msk      - tarantool-storage-2-spb      - etcd1      - etcd2      - etcd3    volumes:      - ./bootstrap/:/bootstrap/

Здесь:

  • image — название Docker-образа, используемого для создания контейнера; Используется как источник скриптов bootstrap.sh, health_check.sh и migrate.sh. Предполагается, что в реальных условиях скрипты будут загружены на компьютер разработчика из личного кабинета tarantool.io.
  • networks— название подсети;
  • environment — переменные окружения:
    • TARANTOOLDB_TARGET_URI — адрес, по которому доступны API-команды кластера. Используется скриптами bootstrap.sh, health_check.sh и migrate.sh;
    • BOOTSTRAP_FAILOVER — первоначальный запуск механизма восстановления после сбоев (failover);
    • TARANTOOLDB_BOOTSTRAP_TIMEOUT — время ожидания первоначального запуска (bootstrap);
  • working_dir — директория, в которой лежат скрипты;
  • command — запуск скриптов bootstrap.sh, health_check.sh и migrate.sh;
  • depends_on — секция определяет, что контейнер user-host запускается только после запуска всех остальных узлов кластера;
  • volumes — передача в контейнер директории с настройками кластера и пользовательской логикой, чтобы они стали доступны для скриптов.

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

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

docker compose down