🔧 chore: Ajustando e reajustando os documentos para a realização do deploy com sucesso.

main
parent 97673fe67b
commit e27c63cb40

@ -41,4 +41,4 @@ 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"]
CMD ["sh", "-c", "uvicorn app.main:app --host 0.0.0.0 --port ${PORT:-8080}"]

@ -7,48 +7,28 @@ steps:
args:
- "build"
- "-t"
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$SHORT_SHA"
- "-t"
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:latest"
- "-t"
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$BUILD_ID"
- "."
waitFor: ["-"]
# Step 2: Push para Artifact Registry
- name: "gcr.io/cloud-builders/docker"
args:
- "push"
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$SHORT_SHA"
waitFor: ["0"]
# Step 3: Deploy para Cloud Run
- name: "gcr.io/cloud-builders/run"
args:
- "deploy"
- "${_IMAGE_NAME}"
- "--image=${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$SHORT_SHA"
- "--region=${_REGION}"
- "--platform=managed"
- "--memory=512Mi"
- "--cpu=1"
- "--timeout=3600"
- "--max-instances=10"
- "--allow-unauthenticated"
waitFor: ["1"]
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$BUILD_ID"
# Step 4: Mostrar URL do serviço
- name: "gcr.io/cloud-builders/run"
# Step 3: Mostrar URL da imagem (opcional, útil para debug)
- name: "gcr.io/cloud-builders/gcloud"
entrypoint: "bash"
args:
- "services"
- "describe"
- "${_IMAGE_NAME}"
- "--region=${_REGION}"
- "--format=value(status.url)"
waitFor: ["2"]
- "-c"
- "echo 'Imagem pronta: ${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$BUILD_ID'"
# Configuração de imagens para armazenar no Artifact Registry
images:
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$SHORT_SHA"
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:latest"
- "${_REGION}-docker.pkg.dev/$PROJECT_ID/${_REPO_NAME}/${_IMAGE_NAME}:$BUILD_ID"
# Configurações de build
options:

@ -56,18 +56,23 @@ gcloud builds submit \
--substitutions=_REGION="$REGION",_REPO_NAME="$REPO_NAME",_IMAGE_NAME="$SERVICE_NAME"
echo "✅ Build concluído"
# Passo 4: Configurar variáveis de ambiente
# Passo 4: Deploy para Cloud Run com variáveis de ambiente
echo ""
echo "4Atualizando variáveis de ambiente no Cloud Run..."
echo "4Realizando deploy para Cloud Run com variáveis de ambiente..."
# Ler variáveis do .env (excluindo comentários e linhas vazias)
# Ler variáveis do .env (excluindo comentários e linhas vazias, e tratando espaços/caracteres especiais)
ENV_VARS=""
while IFS='=' read -r key value; do
# Pular comentários e linhas vazias
[[ "$key" =~ ^#.*$ ]] && continue
[[ -z "$key" ]] && continue
# Adicionar à variável de deploy (sem espaços)
ENV_VARS="$ENV_VARS${key}=${value},"
while IFS= read -r line || [[ -n "$line" ]]; do
# Ignorar linhas vazias e comentários
[[ "$line" =~ ^[[:space:]]*# ]] && continue
[[ -z "${line// }" ]] && continue
# Adicionar à string de variáveis (key=value) e remover \r (quebras de linha Windows)
if [[ "$line" == *"="* ]]; then
# Limpar caracteres de retorno de carro (\r) para evitar erros no Linux
clean_line=$(echo "$line" | tr -d '\r')
ENV_VARS="$ENV_VARS$clean_line,"
fi
done < .env
# Remover última vírgula
@ -75,18 +80,31 @@ ENV_VARS="${ENV_VARS%,}"
if [ -z "$ENV_VARS" ]; then
echo "⚠️ Nenhuma variável de ambiente encontrada em .env"
# Deploy sem variáveis (pode falhar se a app exigir)
gcloud run deploy "$SERVICE_NAME" \
--image="$IMAGE_NAME:latest" \
--region="$REGION" \
--platform=managed \
--allow-unauthenticated
else
gcloud run services update $SERVICE_NAME \
--region=$REGION \
--update-env-vars=$ENV_VARS \
--quiet 2>/dev/null || echo "⚠️ Serviço pode não existir ainda. Será criado automaticamente."
# Deploy com as variáveis coletadas
gcloud run deploy "$SERVICE_NAME" \
--image="$IMAGE_NAME:latest" \
--region="$REGION" \
--platform=managed \
--set-env-vars="$ENV_VARS" \
--memory=512Mi \
--cpu=1 \
--timeout=3600 \
--max-instances=10 \
--allow-unauthenticated
fi
echo "✅ Variáveis de ambiente atualizadas"
echo "✅ Deploy concluído com variáveis de ambiente"
# Passo 5: Sucesso
echo ""
echo "================================"
echo "✅ DEPLOY CONCLUÍDO COM SUCESSO!"
echo "✅ PROCESSO FINALIZADO!"
echo "================================"
echo ""
echo "📋 Próximos passos:"

@ -22,3 +22,5 @@ google-cloud-aiplatform==1.70.0
google-generativeai==0.8.5
httpx==0.27.2
psycopg2-binary==2.9.10
sqlalchemy==2.0.38
pydantic-settings==2.13.0

Loading…
Cancel
Save