Запуск кластера в 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
– передача в контейнер директории с настройками кластера и пользовательской логикой, чтобы они стали доступны для скриптов.