Запуск Glarus BI в Docker¶
Docker упрощает многие аспекты работы с Glarus BI, но следует помнить о некоторых подводных камнях. Если у вас возникли проблемы с Glarus BI в Docker, попробуйте выполнить приведенный ниже процесс устранения неполадок, а затем посмотрите подробности о конкретной проблеме, которую вы обнаружили ниже.
- Контейнер запущен?
- Сервер работает внутри контейнера?
- Использует ли Glarus BI правильную базу данных приложения?
- Можете ли вы подключиться к хосту Docker через порт Glarus BI?
- Можно ли подключиться к контейнеру с хоста Docker?
- Можно ли подключиться к серверу из контейнера?
Следующие полезные команды часто используются при анализе ошибок. Запуск bash внутри контейнера Glarus BI:
Получение логов ошибок контейнера Glarus BI:
Контейнер Glarus BI завершает работу без запуска сервера¶
Как это обнаружить: Запустите docker ps
, чтобы узнать, запущен ли в данный момент контейнер Glarus BI. Если это так, перейдите к следующему шагу.
Если docker ps
не показывает работающий контейнер, выведите список остановленных контейнеров, запустив:
Найдите контейнер, который показан последним, и запишите его идентификатор. Посмотрите на журналы этого контейнера с помощью:
Контейнер Glarus BI запущен, но сервер не работает¶
Как это обнаружить: Запустите docker ps
, чтобы убедиться, что контейнер запущен. Сервер должен регистрироваться в журналах контейнера Docker. Проверьте это, запустив:
Вы должны увидеть такую строку в начале:
Дальше вниз вы должны в конечном итоге увидеть строку вроде:
Если вы видите строки ниже:
05-15 19:07:11 INFO metabase.core :: Glarus BI Shutting Down ...
05-15 19:07:11 INFO metabase.core :: Glarus BI Shutdown COMPLETE
затем Glarus BI закрылась.
Как это исправить. Проверьте журналы контейнера Docker на наличие ошибок при подключении к базе данных приложения. Просмотрите журналы, чтобы убедиться, что Glarus BI Всё ещё запущена; команда:
позволит вам увидеть журналы по мере их печати.
Если контейнер завершается до завершения запуска, проблема может заключаться в таймауте проверки работоспособности в службе оркестровки, используемой для запуска контейнера, например Docker Cloud или Elastic Beanstalk.
Если контейнер не завершается извне, но всё равно не запускается, эта проблема, вероятно, не специфична для Docker. Если вы используете образ, предоставленный Glarus BI, задайте вопрос в сообществе Glarus BI.
Не подключается к базе данных удалённого приложения¶
Как это обнаружить: Если это новый экземпляр Glarus BI, то база данных, указанная вами через переменные среды, будет пустой. Если это существующий экземпляр Glarus BI с неправильными параметрами среды, сервер создаст новую встроенную базу данных H2 для использования с данными приложения, и вы увидите строки, подобные этим, в журнале:
05-10 18:11:40 INFO metabase.core :: Setting up and migrating Glarus BI DB. Please sit tight, this may take a minute...
05-10 18:11:40 INFO metabase.db :: Verifying h2 Database Connection ...
05-10 18:11:40 INFO metabase.db :: Verify Database Connection ... ✅
Как это исправить: Убедитесь, что вы правильно передаете переменные среды в Docker. Вы можете перечислить их для контейнера с помощью этой команды:
Сервер Glarus BI не может подключиться к базе данных MySQL или PostgreSQL¶
Как это обнаружить. Журналы контейнера Docker возвращают сообщение об ошибке после строки «Проверка подключения к базе данных».
Как это исправить: Попробуйте подключиться с помощью команды mysql
или psql
с параметрами строки подключения, которые вы передаете [через переменные среды][база данных конфигурирования-приложения]. Если вы не можете подключиться к базе данных, проблема связана либо с учетными данными, либо с подключением. Чтобы убедиться, что учетные данные верны, войдите в систему с этими учетными данными с другого компьютера, а затем попробуйте установить такое же подключение с хоста, на котором запущен контейнер Docker.
Один из простых способов запустить это — использовать Docker для запуска контейнера с соответствующим клиентом для вашей базы данных. Для Postgres это будет выглядеть так:
Из этого контейнера попробуйте подключиться к хосту базы данных с помощью клиентской команды в контейнере, например psql
. Если вы можете подключиться из другого контейнера на том же хосте, попробуйте установить это подключение из самого контейнера Glarus BI Docker:
Вы также можете попробовать подключиться к хосту базы данных с помощью команды nc
и проверить, можно ли открыть соединение:
База данных приложения Glarus BI не сохраняется¶
Как это обнаружить: Это происходит, если вы видите экран настройки каждый раз, когда запускаете приложение. Наиболее распространённая причина — база данных приложения не примонтирована к файловой системе, а находится внутри контейнера.
Как это исправить. Убедитесь, что вы предоставляете контейнеру постоянный том.
Внутренний порт неправильно переназначается¶
Как это обнаружить: Запустите docker ps
и посмотрите на сопоставление портов, затем запустите curl http://localhost:port-number-here/api/health
. Это должно вернуть ответ JSON, который выглядит так:
Как это исправить: Обязательно включите -p 3000:3000
или аналогичное переназначение порта в команду docker run
, которую вы используете для запуска образа контейнера Glarus BI.
Glarus BI не может записывать или читать в/из файла или каталога¶
Как это обнаружить: Сообщение в журналах будет явно указывать на ошибку IOError или «Отказано в доступе» из Java или ошибки из SQLite, содержащие org.sqlite.core.NativeDB._open_utf8
.
Как это исправить: Убедитесь, что у пользователя, работающего с Glarus BI, есть разрешение на чтение и запись в файл или каталог:
- Если вы запускаете Glarus BI в виде файла JAR на локальном компьютере или сервере, проверьте пользователя, который запускает процесс Java.
- Если вы запускаете Glarus BI из контейнера Docker, убедитесь, что вы используете каталог
/metabase.db
.
Если вы запускаете Glarus BI из JAR в любой Unix-подобной операционной системе, вы можете увидеть, какой пользователь запускает Glarus BI, открыв терминал и набрав ps -uA | Glarus BI grep
.