Files
AI-inovyo-assistende-db/docs/deployment.md
2026-05-14 15:29:03 -03:00

93 lines
1.8 KiB
Markdown

# Deploy
## Fluxo
```
1. Build Docker ──▶ 2. Push ECR ──▶ 3. Atualizar SHA no Pulumi ──▶ 4. pulumi up
```
---
## 1. Build da Imagem Docker
Execute a partir da raiz do repositório:
```bash
docker build code/ --platform linux/amd64 -t <ECR_REPO_NAME>
```
---
## 2. Push para o ECR
### Autenticar no ECR
```bash
aws ecr get-login-password --region <REGION> \
| docker login --username AWS --password-stdin <AWS_ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com
```
### Tag e push
```bash
docker tag <ECR_REPO_NAME>:latest \
<AWS_ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/<ECR_REPO_NAME>:latest
docker push <AWS_ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/<ECR_REPO_NAME>:latest
```
---
## 3. Obter o SHA da imagem publicada
Após o push, obtenha o digest da imagem no ECR:
```bash
aws ecr describe-images \
--repository-name <ECR_REPO_NAME> \
--region <REGION> \
--query 'sort_by(imageDetails, &imagePushedAt)[-1].imageDigest' \
--output text
```
O retorno será no formato `sha256:xxxxxxxx...`.
---
## 4. Atualizar o SHA no Pulumi
Edite [infra/ecs_alb/Pulumi.Inovyo.yaml](../infra/ecs_alb/Pulumi.Inovyo.yaml) e atualize o campo `ecr_image_digest` com o valor obtido no passo anterior:
```yaml
ecr_image_digest: sha256:<novo-digest>
```
---
## 5. Aplicar com Pulumi
```bash
cd infra/ecs_alb
pulumi up --stack Inovyo
```
Para visualizar as mudanças antes de aplicar:
```bash
pulumi preview --diff --stack Inovyo
```
---
## Configuração do Container
O `entrypoint.sh` inicia dois processos:
1. **FastAPI** (background): `uvicorn app.api:app --host 0.0.0.0 --port 8000`
2. **Streamlit** (foreground): `streamlit run app/front.py --server.port 8501 --server.address 0.0.0.0 --server.headless true`
Após o deploy, a aplicação fica acessível pelo DNS do ALB:
- **API:** `http://<alb-dns>:8000`
- **Streamlit:** `http://<alb-dns>:8501`