Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

Сборка Docker-образа Greengage DB

Андрей Аксенов

В этом разделе описывается, как собрать Docker-образ Greengage DB (на основе Greenplum Database) и использовать этот образ для запуска тестового кластера в Docker-контейнере. Вы также можете использовать этот образ для запуска различных наборов тестов. Узнайте больше в разделе How to run tests.

Предварительные требования

Для выполнения действий, описанных в этом документе, в вашей операционной системе должны быть установлены git и Docker. В Windows также необходимо предварительно установить Windows Subsystem for Linux (WSL), так как шаги сборки нужно выполнять в среде Linux.

Клонирование репозитория Greengage DB

ПРИМЕЧАНИЕ

В Windows репозиторий следует клонировать в файловую систему WSL (например, в каталог /home/<user>).

  1. Клонируйте репозиторий greengage с подмодулями:

    $ git clone --recurse-submodules https://github.com/GreengageDB/greengage.git
  2. Измените текущий каталог на greengage:

    $ cd greengage
  3. Переключитесь на ветку для Greengage DB 7:

    $ git checkout 7.x

Сборка Docker-образа Greengage DB

Docker-образ Greengage DB можно собрать на хостах x86_64 и ARM64:

  • На x86_64 используйте docker build.

  • На ARM64 (например, Apple Silicon) используйте docker buildx для создания x86_64-совместимого образа.

Выполните соответствующую команду из каталога greengage:

$ docker build -t greengagedb7:latest -f ci/Dockerfile.ubuntu .
$ docker buildx build --platform=linux/amd64 -t greengagedb7:latest -f ci/Dockerfile.ubuntu .

Эта команда собирает Docker-образ greengagedb7 на основе Ubuntu 22.04, включая все необходимые библиотеки и скомпилированные бинарные файлы.

Работа с тестовым кластером

В этом разделе описывается запуск Docker-контейнера с Greengage DB и работа с тестовым кластером внутри этого контейнера.

Запуск Docker-контейнера

Чтобы создать и запустить Docker-контейнер для тестового кластера Greengage DB, выполните следующую команду:

$ docker run \
  --name greengagedb7_demo \
  --rm \
  -it \
  --sysctl 'kernel.sem=500 1024000 200 4096' \
  greengagedb7:latest \
  bash -c "ssh-keygen -A && /usr/sbin/sshd && bash"

После создания и запуска контейнера откроется интерактивная сессия оболочки Bash. Теперь вы можете установить и настроить Greengage DB, а затем запустить тестовый кластер.

Установка и настройка Greengage DB

  1. Выполните команду source для скрипта common.bash:

    $ source gpdb_src/concourse/scripts/common.bash
  2. Вызовите функцию install_and_configure_gpdb, определенную в файле common.bash, чтобы распаковать бинарные файлы Greengage DB в /usr/local/greengage-db-devel/:

    $ install_and_configure_gpdb

Создание административного пользователя Greengage DB

Выполните следующий скрипт, чтобы создать системную учетную запись пользователя для запуска и администрирования Greengage DB:

$ gpdb_src/concourse/scripts/setup_gpadmin_user.bash

Эта команда создает пользователя gpadmin, генерирует пару SSH-ключей и назначает gpadmin владельцем каталога /usr/local/greengage-db-devel/.

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

Создайте и запустите тестовый кластер, вызвав функцию make_cluster:

$ make_cluster

Проверка кластера

Чтобы убедиться, что кластер работает правильно, вам необходимо подключиться к базе данных:

  1. Переключитесь на пользователя gpadmin:

    $ su - gpadmin
  2. Установите путь к Greengage DB и переменные окружения следующим образом:

    $ source /usr/local/greengage-db-devel/greengage_path.sh
  3. Выполните команду source для скрипта gpdemo-env.sh, чтобы установить значения переменных окружения PGPORT и COORDINATOR_DATA_DIRECTORY:

    $ source gpdb_src/gpAux/gpdemo/gpdemo-env.sh
  4. Подключитесь к базе данных postgres, созданной по умолчанию:

    $ psql postgres

    Результат должен выглядеть следующим образом:

    psql (12.22)
    Type "help" for help.
    
    postgres=#
  5. Получите информацию об установленной версии Greengage DB:

    SELECT version();

    Вывод может выглядеть следующим образом:

    PostgreSQL 12.22 (Greengage Database 7.4.0+dev.18.g6f3bcb96e8 build commit:6f3bcb96e84406c05798afb2cdd47ac928f286bc) on x86_
    64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0, 64-bit compiled on Nov 25 2025 13:55:19 (with asser
    t checking) Bhuvnesh C.