Запуск Glarus BI в Docker¶
Glarus BI предоставляет официальный образ Docker, находящийся в репозитории компании Glarus Digital, который можно использовать для развёртывания в любой системе, на которой работает Docker.
Если вы пытаетесь обновить версию Glarus BI в Docker, ознакомьтесь с инструкцией по обновлению.
Быстрый старт Glarus BI¶
Используйте это краткое руководство для локального запуска версии Glarus BI. Инструкцию по запуску Glarus BI для промышленной эксплуатации см. ниже.
Предполагается, что у вас установлен и запущен Docker. Получите последний образ Docker:
Затем запустите контейнер Glarus BI:
Это запустит сервер Glarus BI на порту 3000 по умолчанию.
Опционально: чтобы просмотреть журнал запуска по мере инициализации Glarus BI с открытым исходным кодом, запустите:
После завершения запуска вы можете получить доступ к главной странице Glarus BI по адресу http://localhost:3000
.
Чтобы запустить Glarus BI на другом порту, скажем, на 12345 выполните следующее:
Установка для промышленной эксплуатации¶
Glarus BI поставляется со встроенной базой данных H2, которая использует файловую систему для хранения собственных данных приложения. Это означает, что если вы удалите контейнер, вы потеряете данные приложения Glarus BI (ваши запросы, дашборды, коллекции и т.д.).
Если вы хотите запустить Glarus BI в среде промышленной эксплуатации, вам необходимо хранить данные приложения в базе данных уровня промышленной эксплуатации.
После того как вы подготовили систему управления базами данных, такую как PostgreSQL, и базу данных для Glarus BI, чтобы использовать её для хранения данных своего приложения, всё что вам нужно сделать, это предоставить Glarus BI информацию о подключении и учётные данные, чтобы Glarus BI могла подключиться к ней.
Запуск Docker для промышленной эксплуатации¶
Допустим, вы запустили вашу данных Postgres следующим образом:
Нет необходимости вручную добавлять какие-либо таблицы; Glarus BI сама создаст их при запуске. И давайте предположим, что база данных доступна через my-database-host:5432
с именем пользователя name
и паролем password
.
Вот пример команды Docker, которая запускает Glarus BI с использованием этой базы данных:
docker run -d -p 3000:3000 \
-e "MB_DB_TYPE=postgres" \
-e "MB_DB_DBNAME=metabaseappdb" \
-e "MB_DB_PORT=5432" \
-e "MB_DB_USER=name" \
-e "MB_DB_PASS=password" \
-e "MB_DB_HOST=my-database-host" \
--name glarusBI repo/image
Имейте в виду, что Glarus BI будет подключаться изнутри вашего контейнера Docker, поэтому убедитесь, что:
а) или вы используете полное имя хоста;
б) или вы установили правильную запись в файл /etc/hosts
вашего контейнера.
Миграция на базу данных уровня промышленной эксплуатации¶
Если вы уже использовали Glarus BI с базой данных приложения по умолчанию (H2), а теперь хотите использовать базу данных для промышленной эксплуатации приложения, не потеряв свои данные (запросы, дашборды и т.д.), см. Миграция с H2 на базу данных уровня промышленной эксплуатации.
Дополнительная настройка Docker¶
- Конфигурирование Jetty сервера Glarus BI
- Переменные окружения для Docker
- Установка часового пояса в Java
- Копирование базы данных приложения (метаданных)
- Монтирование тома хранилища файлов
- Получить файл настройки, если докер остановлен
- Добавление внешних зависимостей или плагинов
- Использование Docker Secrets для сокрытия конфиденциальных параметров
- Поиск неисправностей
- Продолжение установки
Конфигурирование Jetty сервера Glarus BI¶
Вы можете использовать любые пользовательские настройки из Настройка веб-сервера Jetty Glarus BI, установив переменные среды в команде запуска Docker.
Переменные среды, специфичные для Docker¶
В дополнение к стандартным пользовательским настройкам существуют две специфичные для докера переменные среды «MUID» и «MGID», которые используются для установки идентификаторов пользователя и группы, используемых Glarus BI при работе в Docker-контейнере. Эти параметры позволяют сопоставлять права доступа к файлам, когда, например, файлы базы данных приложения, совместно используются хостом и контейнером.
При следующем запуске вы будете использовать файл базы данных, принадлежащий вашей учётной записи и хранящийся в вашем домашнем каталоге:
docker run -d -v ~/my-metabase-db:/metabase.db --name glarusBI -e MB_DB_FILE=/metabase.db -e MUID=$UID -e MGID=$GID -p 3000:3000 repo/image
Установка часового пояса в Java¶
Лучше всего установить часовой пояс в Java таким образом, чтобы он соответствовал часовому поясу, в который должны работать все ваши отчёты. Это можно сделать, просто указав переменную среды JAVA_TIMEZONE
, которая подбирается сценарием запуска Glarus BI. Например:
Копирование базы данных приложения (метаданных)¶
Расположение базы данных приложения по умолчанию в контейнере — /metabase.db/metabase.db.mv.db
. Вы можете скопировать этот каталог из контейнера, используя следующую команду (заменив CONTAINER_ID
фактическим идентификатором или названием контейнера, например metabase
):
Содержимое БД останется в каталоге metabase.db.
Монтирование тома хранилища файлов¶
Чтобы сохранить ваши данные вне контейнера и сделать их доступными для использования между запусками контейнера, мы можем смонтировать локальный путь к файлу внутри нашего контейнера.
docker run -d -p 3000:3000 \
-v ~/metabase-data:/metabase-data \
-e "MB_DB_FILE=/metabase-data/metabase.db" \
--name glarusBI repo/image
Когда вы запускаете свой контейнер, Glarus BI будет использовать файл базы данных (MB_DB_FILE
) в ~/metabase-data/metabase.db
вместо его расположения по умолчанию. При этом мы смонтируем эту папку из нашей локальной файловой системы в контейнер.
Получить файл настройки, если контейнер остановлен¶
Если вы ранее запустили и настроили свою Glarus BI с помощью локальной базы данных, а затем остановили контейнер, ваши данные останутся там, если только вы не удалили контейнер с помощью команды docker rm
. Чтобы восстановить предыдущую конфигурацию:
1. Идентифицируйте остановленный контейнер с помощью команды docker ps -a
:¶
docker ps -a | grep metabase
ca072cd44a49 metabase/metabase "/app/run_metabase.sh" About an hour ago Up About an hour 0.0.0.0:3000->3000/tcp metabase
02e4dff057d2 262aa3d0f714 "/app/run_metabase.sh" 23 hours ago Exited (0) 23 hours ago pedantic_hypatia
0d2170d4aa4a 262aa3d0f714 "/app/run_metabase.sh" 23 hours ago Exited (0) 23 hours ago stoic_lumiere
Как только вы определите остановленный контейнер с вашей конфигурацией, сохраните идентификатор контейнера из крайнего левого столбца для следующего шага.
2. Используйте docker commit
, чтобы создать новый пользовательский образ докера из остановленного контейнера, содержащего вашу конфигурацию¶
docker commit ca072cd44a49 mycompany/metabase-custom
sha256:9ff56186de4dd0b9bb2a37c977c3a4c9358647cde60a16f11f4c05bded1fe77a
3. Запустите новый образ с помощью docker run
, чтобы снова начать работу¶
docker run -d -p 3000:3000 --name glarusBI repo/image
430bb02a37bb2471176e54ca323d0940c4e0ee210c3ab04262cb6576fe4ded6d
После этого запуска Glarus BI запустится с предыдущей конфигурацией. Если вы не получили то, что ожидали, попробуйте другой остановленный контейнер и повторите эти шаги.
Добавление внешних зависимостей или плагинов¶
Чтобы добавить файлы JAR для внешних зависимостей, (например, драйверы JDBC Oracle или Vertica или сторонние драйверы Glarus BI), сделайте следующее:
- создайте каталог
plugins
в вашей хост-системе и - привяжите этот каталог, чтобы он был доступен для Glarus BI по пути
/plugins
(используя либо--mount
, либо-v
/--volume
).
Например, если у вас есть каталог /path/to/plugins
в вашей хост-системе, вы можете сделать его содержимое доступным для Glarus BI, используя параметр --mount
следующим образом:
docker run -d -p 3000:3000 \
--mount type=bind,source=/path/to/plugins,destination=/plugins \
--name glarusBI repo/image
Обратите внимание, что Glarus BI будет использовать этот каталог для извлечения плагинов, связанных с дистрибутивом Glarus BI по умолчанию (например, драйверов для различных баз данных, таких как SQLite), поэтому он должен быть доступен для чтения и записи для Docker.
Использование Docker Secrets для сокрытия конфиденциальных параметров¶
Чтобы скрыть параметры подключения, вы можете использовать Docker Secrets, чтобы поместить все параметры в файлы, чтобы Docker мог прочитать и загрузить их в память перед запуском контейнера.
Вот пример файла docker-compose.yml
для запуска контейнера Glarus BI с секретами для подключения к базе данных PostgreSQL.
В дополнение к этому примеру файла yml вам нужно создать два файла:
- db_user.txt,
- db_password.txt.
Эти файлы должны находиться в том же каталоге, что и docker-compose.yml
. Поместите db_user в файл db_user.txt и db_password в файл db_password.txt.
Обратите внимание на «_FILE» в переменных среды, где есть конфиденциальные параметры).
Эти файлы должны находиться в том же каталоге, что и docker-compose.yml
. Поместите db_user в файл db_user.txt и db_password в файл db_password.txt.
Обратите внимание на постфикс «_FILE» в переменных среды, где заданы конфиденциальные параметры:
version: '3.9'
services:
GlarusBI:
image: repo/image:latest
container_name: GlarusBI
hostname: GlarusBI
volumes:
- /dev/urandom:/dev/random:ro
ports:
- 3000:3000
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: metabase
MB_DB_PORT: 5432
MB_DB_USER_FILE: /run/secrets/db_user
MB_DB_PASS_FILE: /run/secrets/db_password
MB_DB_HOST: postgres
networks:
- glarusbinet
secrets:
- db_password
- db_user
healthcheck:
test: curl --fail -I http://localhost:3000/api/health || exit 1
interval: 15s
timeout: 5s
retries: 5
postgres:
image: postgres:latest
container_name: postgres
hostname: postgres
environment:
POSTGRES_USER_FILE: /run/secrets/db_user
POSTGRES_DB: metabase
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
networks:
- glarusbinet
secrets:
- db_password
- db_user
networks:
glarusbinet:
driver: bridge
secrets:
db_password:
file: db_password.txt
db_user:
file: db_user.txt
В настоящее время поддерживаются следующие переменные среды для конфиденциальных данных:
- MB_DB_USER
- MB_DB_PASS
- MB_DB_CONNECTION_URI
- MB_EMAIL_SMTP_PASSWORD
- MB_EMAIL_SMTP_USERNAME
- MB_LDAP_PASSWORD
- MB_LDAP_BIND_DN
Чтобы контейнер Glarus BI мог читать файлы и использовать содержимое в качестве конфиденциальных данных, к имени переменной среды необходимо добавить постфикс "_FILE", как описано выше.
Поиск неисправностей¶
См. запуск Glarus BI в Руководстве по устранению неполадок.
Продолжение установки¶
Теперь, когда вы установили Glarus BI, пришло время настроить её и подключить к базе данных.