feat: Adicionando configuração de deploy, Docker e documentação

main
parent 6a28119dbf
commit ce74c77ea2

@ -0,0 +1,22 @@
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/
.env
.env.local
venv/
.venv/
env/
.git/
.gitignore
.github/
.pytest_cache/
.coverage
htmlcov/
.DS_Store
*.log
.vscode/
.idea/

@ -0,0 +1,19 @@
.git
.gitignore
venv/
.venv/
env/
__pycache__/
*.pyc
*.pyo
*.egg-info/
.pytest_cache/
.coverage
htmlcov/
.DS_Store
*.log
.vscode/
.idea/
.env
node_modules/

@ -0,0 +1,56 @@
# Configuração para Cloud SQL Proxy (Optional)
Para usar Cloud SQL em vez de PostgreSQL local:
## 1. Instale o Cloud SQL Proxy
```bash
sudo curl https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -o cloud_sql_proxy
sudo chmod +x cloud_sql_proxy
```
## 2. Crie uma Service Account
```bash
# No Cloud Console ou via gcloud
gcloud iam service-accounts create cloudsql-proxy \
--display-name="Cloud SQL Proxy"
# Dê permissões
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:cloudsql-proxy@PROJECT_ID.iam.gserviceaccount.com" \
--role="roles/cloudsql.client"
```
## 3. Configure Variáveis de Ambiente
```env
# Opção A: Unix Socket (recomendado)
DB_HOST=/cloudsql/PROJECT_ID:REGION:INSTANCE_NAME
# Opção B: TCP
DB_HOST=127.0.0.1
DB_PORT=5432
```
## 4. Inicie o Proxy
```bash
./cloud_sql_proxy -instances=PROJECT_ID:REGION:INSTANCE_NAME=tcp:5432 \
-credential_file=/path/to/service-account-key.json
```
## 5. No Cloud Run
A variável DATABASE_URL deve ser:
```
postgresql://user:password@/cloudsql/PROJECT_ID:REGION:INSTANCE_NAME/database
```
O Cloud Run injeta automaticamente a credencial da service account do projeto.
## Referência
- [Cloud SQL Proxy Docs](https://cloud.google.com/sql/docs/postgres/cloud-sql-proxy)
- [Cloud SQL Python Connector](https://github.com/GoogleCloudPlatform/cloud-sql-python-connector)

@ -0,0 +1,44 @@
# Build stage
FROM python:3.11-slim as builder
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /build
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --user --no-cache-dir -r requirements.txt
# Runtime stage
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PORT=8080
WORKDIR /app
# Install runtime dependencies only
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq5 \
&& rm -rf /var/lib/apt/lists/*
# Copy Python dependencies from builder
COPY --from=builder /root/.local /root/.local
# Copy application code
COPY app /app/app
ENV PATH=/root/.local/bin:$PATH
EXPOSE 8080
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
CMD python -c "import httpx; httpx.get('http://localhost:8080/docs', timeout=5)" || exit 1
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080"]

@ -0,0 +1,765 @@
# 🚀 Guia Completo: Configure e Faça Deploy do Orquestrador
**Tempo total: ~30 minutos**
Este guia leva você desde a configuração no Google Cloud Console até o deploy da aplicação online.
---
## 📋 Índice
1. [Pré-requisitos](#pré-requisitos)
2. [FASE 1: Google Cloud Console](#fase-1-google-cloud-console)
3. [FASE 2: Configurar Ambiente Local](#fase-2-configurar-ambiente-local)
4. [FASE 3: Testar Localmente](#fase-3-testar-localmente-opcional)
5. [FASE 4: Deploy no Cloud Run](#fase-4-deploy-no-cloud-run)
6. [FASE 5: Verificar e Testar](#fase-5-verificar-e-testar)
7. [Troubleshooting](#troubleshooting)
---
## ✅ Pré-requisitos
Antes de começar, você já deve ter:
- [ ] Google Cloud SDK instalado no seu PC
- Windows: https://cloud.google.com/sdk/docs/install-windows
- Verificar: Abra terminal e digite `gcloud --version`
- [ ] Acesso a um projeto GCP fornecido pela sua empresa
- [ ] Docker instalado (para testar localmente - opcional)
- Download: https://www.docker.com/products/docker-desktop
- [ ] Git instalado no seu PC
- [ ] Python 3.11+ instalado
**Se não tiver algum, instale antes de continuar!**
---
# FASE 1: Google Cloud Console
**⏱️ Tempo: ~10 minutos**
Você vai configurar todos os recursos no Google Cloud Console. Siga cada passo na ordem.
---
## PASSO 1: Identificar Seu Projeto
1. Acesse: https://console.cloud.google.com/
2. No topo esquerdo, clique no **seletor de projeto**
3. Selecione o projeto fornecido pela sua empresa
4. **Copie e anote o Project ID** que aparece no topo
```
Seu Project ID: _________________________________
```
---
## PASSO 2: Ativar APIs Necessárias
**Local:** Menu ☰ → "APIs e Serviços" → "APIs e serviços ativados"
Você vai ativar 6 APIs. Para cada uma:
1. Clique **"Ativar APIs e Serviços"** (botão azul no topo)
2. Digite o nome da API na caixa de busca
3. Clique na API
4. Clique **"Ativar"**
5. Aguarde ~1-2 minutos
6. Volte e repita para a próxima
### APIs para Ativar:
- [ ] **Cloud Run API**
- [ ] **Cloud Build API**
- [ ] **Cloud SQL Admin API**
- [ ] **Artifact Registry API** ⚠️ (busque em inglês)
- [ ] **Vertex AI API** (para usar LLM/Gemini)
- [ ] **Compute Engine API**
**✅ Confirmação:** Você deve ver todas as 6 APIs listadas em "APIs e serviços ativados"
---
## PASSO 3: Criar Cloud SQL (Banco de Dados PostgreSQL)
Seu banco de dados onde a aplicação vai armazenar dados.
### 3.1 - Acessar Cloud SQL
Menu ☰ → **"SQL"** (dentro de "Bancos de Dados")
### 3.2 - Criar Nova Instância
1. Clique **"Criar instância"**
2. Selecione **"PostgreSQL"**
### 3.3 - Configurar Instância
Preencha com os seguintes valores:
- **ID da instância**: `orquestrador-db`
- **Senha da instância**: Escolha uma senha **SEGURA** (ex: `Abc@123xyz!`)
- ⚠️ **Copie e guarde em local seguro!**
- Senha raiz: `_________________________________`
- **Versão do PostgreSQL**: `16` (ou `15`)
- **Região**: `us-central1` (mesmo de Cloud Run depois)
- **Disponibilidade zonal**: `Zona única` (está ok para começar)
### 3.4 - Configurar Conectividade
Na seção **"Conectividade"**:
1. Clique para expandir **"Conectividade"**
2. Marque ✓ **"IP público"**
3. Na seção **"Conexões autorizadas de redes"**, clique **"Criar rede"**
- Nome: `cloudsql-network` (ou deixe padrão)
- Clique **"Criar e voltar"**
⚠️ **Importante:** Isso permite que Cloud Run se conecte ao banco de dados.
### 3.5 - Criar Instância
1. Clique **"Criar"** (botão azul no final)
2. Aguarde **5-10 minutos** (status mudará de "criando..." para verde ✓)
---
## PASSO 4: Configurar Cloud SQL - Usuários e Banco de Dados
Quando a instância estiver **verde/pronta**:
### 4.1 - Obter Dados de Conexão
1. Clique no nome `orquestrador-db`
2. Copie o **Nome da conexão** (aparece parte superior):
- Formato: `seu-projeto-id:us-central1:orquestrador-db`
- Copie: `_________________________________`
3. Na aba **"Visão geral"**, encontre **"IP público"** na seção **"Conectividade"**
- Copie: `_________________________________`
### 4.2 - Criar Usuário do Banco
Na aba **"Usuários e bancos de dados"**:
1. Clique **"Criar usuário"**
2. Preencha:
- **Nome do usuário**: `orquestrador`
- **Senha**: Escolha uma senha (ex: `Orm@2026!`)
- ⚠️ **Copie e guarde!**
- Senha do usuário orquestrador: `_________________________________`
3. Clique **"Criar"**
### 4.3 - Criar Banco de Dados
Na aba **"Usuários e bancos de dados"**, clique em **"Bancos de dados"**:
1. Clique **"Criar banco de dados"**
2. Preencha:
- **Nome do banco de dados**: `orquestrador_db`
- **Conjunto de caracteres**: `utf8mb4`
3. Clique **"Criar"**
---
## PASSO 5: Criar Conta de Serviço (Service Account)
Isso permite que Cloud Run se autentique no GCP.
### 5.1 - Ir para Credenciais
Menu ☰ → **"APIs e Serviços"** → **"Credenciais"**
### 5.2 - Criar Conta de Serviço
1. Clique **"Criar credenciais"** → **"Conta de serviço"**
2. Preencha:
- **Nome da conta de serviço**: `orquestrador-app`
- **ID da conta de serviço**: `orquestrador-app` (preenchido automaticamente)
3. Clique **"Criar e continuar"**
### 5.3 - Atribuir Permissões
Na tela de permissões:
1. Clique **"Selecionar uma função"**
2. Procure e selecione cada uma das funções abaixo. **Adicione todas**:
- `Cliente do Cloud SQL`
- `Desenvolvedor do Cloud Run`
- `Gravador do Registro de Artefatos`
3. Clique **"Continuar"**
4. Clique **"Concluído"**
### 5.4 - Gerar Chave JSON
1. Volte para **"Credenciais"**
2. Clique na conta de serviço `orquestrador-app` (em "Contas de serviço")
3. Vá para a aba **"Chaves"**
4. Clique **"Adicionar chave"** → **"Criar nova chave"**
5. Selecione **"JSON"**
6. Clique **"Criar"**
⚠️ **Um arquivo JSON será baixado automaticamente!**
- Salve em: `D:\vitor\Pessoal\PJ\Orquestrador\service-account-key.json`
- **Não compartilhe este arquivo com ninguém!**
---
## PASSO 6: Criar Registro de Artefatos (Container Registry)
Repository para armazenar suas imagens Docker.
### 6.1 - Acessar Registro
Menu ☰ → **"Registro de Artefatos"** → **"Repositórios"**
### 6.2 - Criar Repositório
1. Clique **"Criar repositório"**
2. Preencha:
- **Nome**: `orquestrador`
- **Formato**: `Docker`
- **Localização**: `us-central1` (mesmo do Cloud SQL)
3. Clique **"Criar"**
---
## ✅ Checklist - Fase 1 Concluída
Você deve ter anotado:
- [ ] Project ID: `_________________________________`
- [ ] Cloud SQL Connection Name: `_________________________________`
- [ ] Cloud SQL Public IP: `_________________________________`
- [ ] Cloud SQL User: `orquestrador`
- [ ] Cloud SQL Password: `_________________________________`
- [ ] Cloud SQL Root Password: `_________________________________`
- [ ] Cloud SQL Database: `orquestrador_db`
- [ ] Service Account JSON file baixado e salvo
- [ ] 6 APIs ativadas
- [ ] Registro de Artefatos criado
**Próximo: Fase 2 - Configurar Ambiente Local**
---
# FASE 2: Configurar Ambiente Local
**⏱️ Tempo: ~5 minutos**
Agora você vai configurar seu PC para comunicar com o GCP.
---
## PASSO 1: Autenticar com Google Cloud SDK
Abra **PowerShell** e execute:
```powershell
# Fazer login no Google Cloud
gcloud auth login
# Definir projeto padrão
gcloud config set project SEU-PROJECT-ID
# Exemplo:
gcloud config set project orquestrador-mvp-12345
```
Siga as instruções no navegador que abrir.
---
## PASSO 2: Configurar Autenticação de Conta de Serviço
Ainda no **PowerShell**:
```powershell
# Definir variável de ambiente para usar a conta de serviço
$env:GOOGLE_APPLICATION_CREDENTIALS = "D:\vitor\Pessoal\PJ\Orquestrador\service-account-key.json"
# Verificar que funcionou
gcloud auth list
```
---
## PASSO 3: Criar Arquivo `.env`
Este arquivo contém suas credenciais e configurações.
### 3.1 - Criar o Arquivo
Na raiz do projeto (`D:\vitor\Pessoal\PJ\Orquestrador\`), crie um arquivo chamado `.env` com:
```env
# ============================================
# CONFIGURAÇÕES DO GOOGLE CLOUD
# ============================================
PROJECT_ID=SEU-PROJECT-ID
GCP_REGION=us-central1
# ============================================
# CONFIGURAÇÕES DO BANCO DE DADOS
# ============================================
# URL de conexão direta (para testes locais)
DATABASE_URL=postgresql://orquestrador:SUA_SENHA@SEU_IP_PUBLICO:5432/orquestrador_db
# Nome da conexão Cloud SQL (para Cloud Run)
CLOUD_SQL_CONNECTION_NAME=seu-projeto:us-central1:orquestrador-db
# ============================================
# CONFIGURAÇÕES DE API
# ============================================
# Se usar Generative AI (Gemini)
# GOOGLE_API_KEY=sua-chave-api-aqui
# Se usar Mockaroo (dados fictícios)
# MOCKAROO_API_KEY=sua-chave-mockaroo-aqui
# ============================================
# OUTRAS CONFIGURAÇÕES
# ============================================
ENVIRONMENT=development
DEBUG=true
```
### 3.2 - Preencher com Seus Dados
Substitua os valores acima com:
- `SEU-PROJECT-ID` → seu Project ID do GCP
- `SUA_SENHA` → senha do usuário `orquestrador` no Cloud SQL
- `SEU_IP_PUBLICO` → IP público do Cloud SQL
**Exemplo completo:**
```env
PROJECT_ID=orquestrador-mvp-12345
GCP_REGION=us-central1
DATABASE_URL=postgresql://orquestrador:Orm@2026!@35.192.120.50:5432/orquestrador_db
CLOUD_SQL_CONNECTION_NAME=orquestrador-mvp-12345:us-central1:orquestrador-db
ENVIRONMENT=development
DEBUG=true
```
⚠️ **IMPORTANTE:** Nunca compartilhe este arquivo `.env`! Ele contém suas senhas!
---
## PASSO 4: Instalar Dependências Python
Abra **PowerShell** na pasta do projeto:
```powershell
# Ativar ambiente virtual (já deve estar ativo)
# & .\venv\Scripts\Activate.ps1
# Instalar dependências
pip install -r requirements.txt
# Verificar que funcionou
pip list | Select-String "fastapi|psycopg2"
```
---
## ✅ Checklist - Fase 2 Concluída
- [ ] Autenticado no Google Cloud (`gcloud auth list` mostra sua conta)
- [ ] Project ID configurado como padrão
- [ ] Arquivo `.env` criado e preenchido
- [ ] `GOOGLE_APPLICATION_CREDENTIALS` configurado
- [ ] Dependências instaladas
**Próximo: Fase 3 - Testar Localmente (opcional)**
---
# FASE 3: Testar Localmente (Opcional)
**⏱️ Tempo: ~5 minutos**
Teste a aplicação no seu PC antes de fazer deploy.
---
## PASSO 1: Testar Conexão com Banco de Dados
```powershell
# Instalar psql (client PostgreSQL) se não tiver
# Windows: https://www.postgresql.org/download/windows/
# Testar conexão
psql -h SEU_IP_PUBLICO -U orquestrador -d orquestrador_db -c "SELECT 1"
# Exemplo:
psql -h 35.192.120.50 -U orquestrador -d orquestrador_db -c "SELECT 1"
```
Se aparecer `1`, conectou com sucesso! ✅
---
## PASSO 2: Rodar a Aplicação Localmente
```powershell
# Ir para a pasta do projeto
cd D:\vitor\Pessoal\PJ\Orquestrador
# Rodar a aplicação FastAPI
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
Seu terminal mostrará:
```
INFO: Uvicorn running on http://127.0.0.1:8000
```
Deixe rodar!
---
## PASSO 3: Testar Endpoints
Abra outro **PowerShell** (enquanto a aplicação está rodando):
```powershell
# Testar endpoint de saúde
curl -X GET "http://localhost:8000/docs"
# Ou abra no navegador: http://localhost:8000/docs
```
Você verá a **Swagger UI** (interface visual da API).
---
## PASSO 4: Testar Chat Endpoint
```powershell
# Fazer uma requisição POST
curl -X POST "http://localhost:8000/chat" `
-H "Content-Type: application/json" `
-d @'{
"message": "Quero um carro até 50000 reais",
"user_id": "test"
}'
```
Se receber resposta → Aplicação está funcionando! ✅
---
## PASSO 5: Parar a Aplicação
No PowerShell onde a aplicação está rodando:
```powershell
# Pressione: Ctrl + C
```
---
## ✅ Checklist - Fase 3 Concluída
- [ ] Conectou ao banco de dados com sucesso
- [ ] Aplicação rodou localmente
- [ ] Swagger UI acessível em http://localhost:8000/docs
- [ ] Endpoint de chat respondeu
**Próximo: Fase 4 - Deploy no Cloud Run**
---
# FASE 4: Deploy no Cloud Run
**⏱️ Tempo: ~10 minutos**
Colocar sua aplicação online no Google Cloud!
---
## PASSO 1: Usar o Script de Deploy
Na raiz do projeto, existe um script `deploy.sh` que faz tudo automaticamente.
### Para Windows (PowerShell):
```powershell
# Ir para a pasta do projeto
cd D:\vitor\Pessoal\PJ\Orquestrador
# Executar deploy
bash deploy.sh SEU-PROJECT-ID us-central1
# Exemplo:
bash deploy.sh orquestrador-mvp-12345 us-central1
```
### O que este script faz:
1. Faz build da imagem Docker
2. Envia a imagem para o Registro de Artefatos
3. Deploy automático no Cloud Run
4. Configura variáveis de ambiente
5. Libera acesso público
**Aguarde ~5-10 minutos** enquanto o script roda.
---
## PASSO 2: Monitorar o Deploy
Você verá logs na tela mostrando o progresso:
```
Building Docker image...
Building image gcr.io/seu-projeto/orquestrador:latest
...
Pushing image to Container Registry...
...
Deploying to Cloud Run...
...
Deployment completed!
```
---
## PASSO 3: Obter URL de Acesso
Quando o deploy terminar, execute:
```powershell
# Obter URL do Cloud Run
gcloud run services describe orquestrador `
--region=us-central1 `
--format='value(status.url)'
```
Você verá algo como:
```
https://orquestrador-xxxxx.a.run.app
```
**Copie esta URL!** Você usará para acessar a aplicação.
---
## ✅ Checklist - Fase 4 Concluída
- [ ] Deploy script executado sem erros
- [ ] Imagem Docker criada
- [ ] Imagem enviada para Registro de Artefatos
- [ ] Serviço Cloud Run criado
- [ ] URL de acesso obtida
- [ ] URL de acesso: `_________________________________`
**Próximo: Fase 5 - Verificar e Testar**
---
# FASE 5: Verificar e Testar
**⏱️ Tempo: ~3 minutos**
Validar que tudo está funcionando online.
---
## PASSO 1: Testar Swagger UI Online
No navegador, acesse:
```
https://SUA-URL-DO-CLOUD-RUN/docs
```
Exemplo:
```
https://orquestrador-xxxxx.a.run.app/docs
```
Você deve ver a interface Swagger UI com todos os endpoints.
---
## PASSO 2: Testar Chat Endpoint
Na Swagger UI:
1. Clique em **POST /chat**
2. Clique **"Try it out"**
3. No campo **"Request body"**, preencha:
```json
{
"message": "Quero um carro até 50000 reais",
"user_id": "test"
}
```
4. Clique **"Execute"**
Você deve receber uma resposta do LLM integrado! ✅
---
## PASSO 3: Testar via Curl (Terminal)
```powershell
# Substituir pela sua URL
$URL = "https://orquestrador-xxxxx.a.run.app"
curl -X POST "$URL/chat" `
-H "Content-Type: application/json" `
-d @'{
"message": "Quero um carro até 50000 reais",
"user_id": "test"
}'
```
---
## PASSO 4: Ver Logs
Para debugar se algo não funcionar:
```powershell
# Ver últimos 50 logs
gcloud run logs read orquestrador --region=us-central1 --limit=50
# Ver logs em tempo real (streaming)
gcloud run logs read orquestrador --region=us-central1 --follow
```
---
## ✅ Checklist - Fase 5 Concluída
- [ ] Swagger UI acessível online
- [ ] Chat endpoint respondeu
- [ ] Curl funcionou
- [ ] Aplicação está ONLINE! 🎉
---
## 🎉 Sucesso!
Sua aplicação está **online e funcionando**!
### Resumo do que você fez:
1. ✅ Ativou 6 APIs no Google Cloud
2. ✅ Criou Cloud SQL PostgreSQL com usuário e banco
3. ✅ Criou Service Account com permissões
4. ✅ Criou Registro de Artefatos
5. ✅ Configurou arquivo `.env` localmente
6. ✅ Testou localmente
7. ✅ Fez deploy no Cloud Run
8. ✅ Validou que funciona online
---
## 📋 Referência Rápida para Próximas Vezes
### Fazer novo deploy após mudanças:
```powershell
cd D:\vitor\Pessoal\PJ\Orquestrador
bash deploy.sh SEU-PROJECT-ID us-central1
```
### Ver status do serviço:
```powershell
gcloud run services describe orquestrador --region=us-central1
```
### Ver logs:
```powershell
gcloud run logs read orquestrador --region=us-central1 --limit=50 --follow
```
### Parar o serviço:
```powershell
gcloud run services delete orquestrador --region=us-central1
```
---
# Troubleshooting
## Problema: "Erro ao conectar ao banco de dados"
**Solução:**
1. Verifique se IP público está correto: `gcloud sql instances describe orquestrador-db --format="value(ipAddresses[0].ipAddress)"`
2. Verifique arquivo `.env` - DATABASE_URL está correto?
3. Verifique se usuário `orquestrador` foi criado
4. Teste: `psql -h IP -U orquestrador -d orquestrador_db -c "SELECT 1"`
## Problema: "Cloud Run não consegue conectar ao banco"
**Solução:**
1. Verifique se Cloud SQL Connection Name está correto no `.env`
2. Verifique se a rede foi criada
3. Cloud Run precisa estar na mesma região do Cloud SQL
## Problema: "Imagem Docker não está sendo enviada"
**Solução:**
1. Verifique se Docker está instalado: `docker --version`
2. Verifique se Registro de Artefatos foi criado no console
3. Verifique autenticação: `gcloud auth login`
## Problema: "Erro ao ativar API"
**Solução:**
1. Confirme que você tem permissão no projeto (pedir ao admin)
2. Espere 1-2 minutos e tente novamente
3. Ao comando: `gcloud services enable cloudrun.googleapis.com`
## Problema: "404 - Endpoint não encontrado"
**Solução:**
1. Confirme a URL está correta: `gcloud run services describe orquestrador --region=us-central1 --format="value(status.url)"`
2. Verifique se o deploy completou: `gcloud run services describe orquestrador --region=us-central1`
3. Aguarde ~1 minuto após o deploy terminar
---
## 📞 Próximos Passos
- **Integrar com Banco de Dados Real**: Configurar seeders de dados
- **CI/CD Automático**: GitHub Actions para deploy automático
- **Monitoramento**: Configurar alertas e dashboards
- **Escalabilidade**: Ajustar autoscaling de Cloud Run
---
**Dúvidas? Refer-se a:**
- [DEPLOY_5_PASSOS.md](DEPLOY_5_PASSOS.md) - Resumo rápido
- [TROUBLESHOOTING.md](TROUBLESHOOTING.md) - Problemas específicos
- [PROJECT_STRUCTURE.md](PROJECT_STRUCTURE.md) - Estrutura do projeto
**Bom deployment! 🚀**

@ -0,0 +1,13 @@
runtime: python311
entrypoint: uvicorn app.main:app --host 0.0.0.0 --port 8080
env: standard
instance_class: F2
automatic_scaling:
min_instances: 1
max_instances: 10
env_variables:
GOOGLE_LOCATION: "us-central1"
USE_MOCKAROO_WRITES: "false"

@ -0,0 +1,45 @@
version: "3.8"
services:
postgres:
image: postgres:15-alpine
container_name: orquestrador_postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: orquestrador
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
app:
build: .
container_name: orquestrador_app
ports:
- "8000:8080"
environment:
GOOGLE_PROJECT_ID: ${GOOGLE_PROJECT_ID}
GOOGLE_LOCATION: ${GOOGLE_LOCATION:-us-central1}
DB_HOST: postgres
DB_PORT: 5432
DB_USER: postgres
DB_PASSWORD: postgres
DB_NAME: orquestrador
MOCKAROO_API_KEY: ${MOCKAROO_API_KEY}
MOCKAROO_BASE_URL: ${MOCKAROO_BASE_URL:-https://my.api.mockaroo.com}
USE_MOCKAROO_WRITES: ${USE_MOCKAROO_WRITES:-false}
depends_on:
postgres:
condition: service_healthy
volumes:
- .:/app
command: uvicorn app.main:app --host 0.0.0.0 --port 8080 --reload
volumes:
postgres_data:
Loading…
Cancel
Save