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

Установка с помощью 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.
  • Вы понимаете, какой адаптер(ы) базы данных вам нужен. Подробнее см. About dbt adapters.
  • Вы понимаете, как версионируется dbt Core. Подробнее см. About dbt Core versions.
  • У вас есть общее понимание dbt, рабочего процесса dbt и локальной разработки с использованием интерфейса командной строки (CLI). Подробнее см. About 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-образов, мы не сможем предоставить выделенную поддержку для таких пользовательских сценариев. Если у вас возникнут проблемы, вы можете обратиться за помощью к сообществу или открыть issue в репозитории dbt-core. Если многие пользователи будут запрашивать одно и то же улучшение, мы пометим issue тегом help_wanted и пригласим сообщество к участию.

Нашли ошибку?

0
Loading