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

Версия:

latest

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

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

Содержание:

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

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

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

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

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

    Примечание

    Есть два способа получить исходные файлы примера:

    • Архив с полной документацией Tarantool DB, полученный по почте или скачанный в личном кабинете tarantool.io. Пример архива: tarantooldb-documentation-0.8.0.tar.gz. Пример up_in_ci расположен в таком архиве в директории ./doc/examples/up_in_ci/.

    • Отдельный архив up_in_ci.tar.gz, скачанный c сайта Tarantool.

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

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

cd ./doc/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.Dockerfile
  networks:
    - tarantooldb_network
  environment:
    - TARANTOOLDB_TARGET_URI=tarantool-router:8081
  working_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
Нашли ответ на свой вопрос?
Обратная связь