Instalação - RJ-SMTR/maestro GitHub Wiki
O dagster pode ser rodado localmente com o make ou utilizando docker.
Ambos os casos utilizam variáveis de ambiente para configuração do BD, webhooks e as pastas dos sensores.
Caso seja de interesse, é possível configurar o watchdog das pipelines. Instruções no diretório watchdog/
.
- Crie um arquivo chamado
.env
na raiz do projeto com as seguintes variáveis de ambiente:
COMPOSE_PROJECT_NAME=<prefixo das imagens que serão contruídas>
DAGSTER_POSTGRES_USER=<usuario do PSQL>
DAGSTER_POSTGRES_PASSWORD=<senha do PSQL>
DAGSTER_POSTGRES_DB=<BD do PSQL>
DAGSTER_POSTGRES_HOST=<host do PSQL>
BRT_DISCORD_WEBHOOK=<webhook do discord para enviar as notificações das pipelines relacionadas ao BRT>
SPPO_DISCORD_WEBHOOK=<webhook do discord para enviar as notificações das pipelines relacionadas aos ônibus>
WDT_DISCORD_WEBHOOK=<webhook do discord para enviar as notificações do watchdog>
- O build assume que o repositório 'maestro' foi clonado em /home, caso tenha clonado em outro local, mude as seguintes linhas no arquivo docker-compose.yaml:
linha 32 - 34 /home/${USER}/maestro/repositories:/opt/dagster/app/repositories ->> /home/${USER}/<clone_path>/repositories:/opt/dagster/app/repositories
linha 129 /home/${USER}/maestro/watchdog_config.yaml:/app/watchdog_config.yaml:ro ->> /home/${USER}/projects/smtr-maestro/watchdog_config.yaml:/app/watchdog_config.yaml:ro
- É preciso subir uma instância local do postgresql para que o build funcione. Use o comando:
docker run -itd --name postgres -e POSTGRES_PASSWORD=123456 --restart unless-stopped -p 5432:5432 postgres:13
- Altere as variáveis de ambiente de acordo no arquivo .env:
DAGSTER_POSTGRES_USER=postgres
DAGSTER_POSTGRES_PASSWORD=123456
DAGSTER_POSTGRES_DB=postgres
Altere também a variável DAGSTER_POSTGRES_HOST com o seu endereço de IP
- Modifique o arquivo do workspace.yaml para executar com as configurações do docker e inicie seu build
cp workspace_docker.yaml workspace.yaml
docker-compose up --build
- Reestarte o sistema com
docker stop $(docker ps -a -q)
docker-compose up --build -d
- Cheque se o build funcionou usando o comando
docker ps
, a saída deverá ser similar a:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b59080461555 test_dagster_daemon "dagster-daemon run" 8 seconds ago Up 6 seconds dagster_daemon
4f47bc455f72 test_dagster_dagit "dagit -h 0.0.0.0 -p…" 8 seconds ago Up 6 seconds 0.0.0.0:3000->3000/tcp dagster_dagit
6fcea03043a2 test_watchdog "python3 watchdog.py" 8 seconds ago Up 6 seconds watchdog
85fae7f16cc6 test_dagster_pipelines "dagster api grpc -h…" 9 seconds ago Up 7 seconds 0.0.0.0:4000->4000/tcp dagster_pipelines
652e9138ede5 redis:6 "docker-entrypoint.s…" 9 seconds ago Up 7 seconds 0.0.0.0:6379->6379/tcp redis
c4bafe3fbb0a postgres:13 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:5432->5432/tcp postgres
Disclaimer: Ainda não há compatibilidade do watchdog para o deployment usando make
. Se isso é uma demanda, favor submeter uma issue.
- Assim como no caso anterior, crie um arquivo para colocar as variáveis de ambiente. Pode chamá-lo de
.env_make
. Além das variáveis anteriores, é preciso configurar mais duas:
COMPOSE_PROJECT_NAME=<prefixo das imagens que serão contruídas>
DAGSTER_POSTGRES_USER=<usuario do PSQL>
DAGSTER_POSTGRES_PASSWORD=<senha do PSQL>
DAGSTER_POSTGRES_DB=<BD do PSQL>
DAGSTER_POSTGRES_HOST=<host do PSQL>
BRT_DISCORD_WEBHOOK=<webhook do discord para enviar as notificações das pipelines relacionadas ao BRT>
SPPO_DISCORD_WEBHOOK=<webhook do discord para enviar as notificações das pipelines relacionadas aos ônibus>
WDT_DISCORD_WEBHOOK=<webhook do discord para enviar as notificações do watchdog>
RDO_DATA=<pasta que o sensor dos dados de RDO deve monitorar>
GTFS_DATA=<pasta que o sensor dos dados de GTFS deve monitorar>
- Modifique o arquivo do
workspace.yaml
para executar com as configurações do make
cp workspace_make.yaml workspace.yaml
- Rode com
make run-daemon
make run-dagit