Запуск кластера в CI¶
При работе в CI возникает необходимость запускать Docker в Docker или другой виртуальной среде. В примере описано, как при таком подходе решить возможную проблему с передачей локальной папки в Docker-образ.
Содержание:
Пререквизиты¶
Для выполнения примера требуются:
- установленный Docker-образ Tarantool DB; 
- приложение Docker compose; 
- исходные файлы примера - up_in_ci.- Примечание - Есть два способа получить исходные файлы примера: - Архив с полной документацией Tarantool DB, полученный по почте или скачанный в личном кабинете tarantool.io. Пример архива: - tarantooldb-documentation-1.0.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– передача в контейнер директории с настройками кластера и пользовательской логикой, чтобы они стали доступны для скриптов.