Principais referência:
- https://github.com/HDaniels1991/airflow_selenium
- https://towardsdatascience.com/selenium-on-airflow-automate-a-daily-online-task-60afc05afaae
- Criar mais uma rede compartilhada entre os containers:
docker network create container_bridge
- Criar volume compartilhado para download de arquivo do script exemplo
docker volume create downloads
- Criar o container abaixo (será usado para executar os comandos do Selenium)
Navegar até pasta do projeto para poder referenciar o Dockerfile correto.
docker build -t docker_selenium -f Dockerfile-selenium .
- Criar conta do primeiro usuário para autenticação:
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import PasswordUser
user = PasswordUser(models.User())
user.username = 'user'
user.email = 'CGINF@economia.gov.br'
user.password = 'pass'
session = settings.Session()
session.add(user)
session.commit()
session.close()
exit()
- Criar tabela de controle local
No ambiente DEV já existe um sqlserver local no docker-compose, para acessar é só usar o nome dado ao container (sqlserver) na variável de ambiente "LAKE_HOST"
CREATE DATABASE seges_cgial_fornecedor;
CREATE TABLE seges_cgial_fornecedor.dbo.CARGA_ATUALIZADA (
FONTE varchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
DT_ATUALIZACAO_CARGA datetime NULL,
DT_ATUALIZACAO_CARGA_ANTERIOR datetime NULL
);
Navegar até a pasta do projeto e subir com docker-compose
docker-compose up