Установка с помощью 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 и пригласим сообщество к участию.