Перейти к основному содержимому

Установка с помощью Docker

dbt Core и все адаптеры, поддерживаемые dbt Labs, доступны как Docker образы и распространяются через GitHub Packages в публичном реестре.

Использование заранее собранного Docker-образа для установки dbt Core в производственной среде имеет несколько преимуществ: он уже включает dbt-core, один или несколько адаптеров баз данных и зафиксированные версии всех их зависимостей. В отличие от этого, python -m pip install dbt-core dbt-<adapter> занимает больше времени и всегда устанавливает последние совместимые версии каждой зависимости.

Вы также можете использовать Docker для установки и разработки локально, если у вас не настроена среда Python. Обратите внимание, что запуск dbt таким образом может быть значительно медленнее, если ваша операционная система отличается от системы, на которой был собран Docker-образ. Если вы часто разрабатываете локально, мы рекомендуем установить dbt Core с помощью pip.

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

  • У вас установлен Docker. Для получения дополнительной информации см. сайт Docker.
  • Вы понимаете, какие адаптеры баз данных вам нужны. Для получения дополнительной информации см. О адаптерах dbt.
  • Вы понимаете, как версионируется dbt Core. Для получения дополнительной информации см. О версиях dbt Core.
  • У вас есть общее понимание dbt, рабочего процесса dbt, разработки локально в интерфейсе командной строки (CLI). Для получения дополнительной информации см. О dbt.

Установка Docker-образа dbt из Github Packages

Официальные Docker-образы dbt размещены как пакеты в организации dbt-labs на GitHub. Мы поддерживаем образы и теги для каждой версии каждого адаптера баз данных, а также два тега, которые обновляются по мере выпуска новых версий:

  • latest: Последняя общая версия dbt-core + этот адаптер
  • <Major>.<Minor>.latest: Последний патч dbt-core + этот адаптер для семейства версий <Major>.<Minor>. Например, 1.1.latest включает последние патчи для dbt Core v1.1.

Установите образ с помощью команды docker pull:

docker pull ghcr.io/dbt-labs/<db_adapter_name>:<version_tag>

Запуск Docker-образа dbt в контейнере

ENTRYPOINT для Docker-образов dbt — это команда dbt. Вы можете примонтировать ваш проект в /usr/app и использовать dbt как обычно:

docker run \
--network=host \
--mount type=bind,source=path/to/project,target=/usr/app \
--mount type=bind,source=path/to/profiles.yml,target=/root/.dbt/profiles.yml \
<dbt_image_name> \
ls

Или

docker run \
--network=host \
--mount type=bind,source=path/to/project,target=/usr/app \
--mount type=bind,source=path/to/profiles.yml.dbt,target=/root/.dbt/ \
<dbt_image_name> \
ls

Примечания:

  • Источники примонтирования должны быть абсолютным путем
  • Возможно, вам потребуется внести изменения в настройки сетевого взаимодействия Docker в зависимости от особенностей вашего хранилища данных или хоста базы данных.

Создание собственного Docker-образа dbt

Если готовые образы не подходят для вашего случая, мы также предоставляем Dockerfile и README, которые можно использовать для создания пользовательских образов различными способами.

В частности, Dockerfile поддерживает создание образов:

  • Образы, которые включают все адаптеры, поддерживаемые dbt Labs
  • Образы, которые устанавливают один или несколько сторонних адаптеров
  • Образы для другой системной архитектуры

Обратите внимание, что если вы решите создавать собственные Docker-образы, мы не можем предложить специализированную поддержку для пользовательских случаев. Если у вас возникнут проблемы, вы можете попросить помощи у сообщества или открыть проблему в репозитории dbt-core. Если многие пользователи запрашивают одно и то же улучшение, мы пометим проблему как help_wanted и пригласим сообщество к участию.

0