Dashboard-Automatizase/Dockerfile
Luis 1391fe6216 feat: enhance Google Calendar integration and update Dockerfile for environment variables
- Updated Dockerfile to include hardcoded environment variables for Next.js build.
- Enhanced Google Calendar API integration by extracting user email from id_token and adding scopes for OpenID and email access.
- Modified credential management to delete existing credentials before creating new ones in n8n.
- Updated dashboard to display connected Google Calendar email and credential details.

Story: 4.2 - Melhorar integração com Google Calendar e atualizar Dockerfile

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2025-10-12 21:16:21 -03:00

86 lines
4.0 KiB
Docker

# ========================================
# Stage 1: Builder - Instalar deps e build
# ========================================
FROM node:20-alpine AS builder
WORKDIR /app
# Copiar package files
COPY package.json package-lock.json ./
# Instalar dependências (incluindo devDependencies para build)
RUN npm ci
# Copiar código fonte
COPY . .
# Variáveis de ambiente hardcoded para build do Next.js
# Frontend - Variáveis Públicas
ENV NEXT_PUBLIC_SITE_URL=https://portal.automatizase.com.br
ENV NEXT_PUBLIC_SUPABASE_URL=https://supabase.automatizase.com.br
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzU5NTI0OTkwLCJleHAiOjIwNzQ4ODQ5OTB9.vAXVcWzQESACqlP6UCw2_8EwQRFTRZFfLW47xRrd23o
ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=174466774807-tdsht53agf7v40suk5mmqgmfrn4iskck.apps.googleusercontent.com
# Backend - Variáveis Privadas
ENV SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UiLCJpYXQiOjE3NTk1MjQ5OTAsImV4cCI6MjA3NDg4NDk5MH0.rkZfAs65vTceDDxWBdencfBtMH22l5ix_XPqltCk5j4
ENV GOOGLE_CLIENT_SECRET=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
# EvolutionAPI Configuration
ENV EVOLUTION_API_URL=https://evolutionapi.automatizase.com.br
ENV EVOLUTION_API_KEY=03919932dcb10fee6f28b1f1013b304c
ENV EVOLUTION_INSTANCE_NAMES="Rita,Lucia Refugio"
# n8n Configuration
ENV N8N_API_URL=https://n8n.automatizase.com.br/api/v1
ENV N8N_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4NjNjYjM1MC1hZGY3LTRiZGMtYWRlNi01OGRmYWYyNmNmYjYiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzYwMjk5MjQ1fQ.pj94fvK9fI181NsGr65Orvp4iiO19qU9D_-vVRUkPbw
ENV N8N_OAUTH_URL=https://n8n.automatizase.com.br/webhook/google-oauth
# Build da aplicação Next.js
RUN npm run build
# ========================================
# Stage 2: Runner - Imagem final otimizada
# ========================================
FROM node:20-alpine AS runner
WORKDIR /app
# Criar usuário não-root para segurança
RUN addgroup --system --gid 1001 nodejs && \
adduser --system --uid 1001 nextjs
# Copiar build standalone do Next.js (já contém as dependências necessárias)
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=builder --chown=nextjs:nodejs /app/public ./public
# Trocar para usuário não-root
USER nextjs
# Expor porta 3100 (customizada conforme requisito)
EXPOSE 3100
# Variáveis de ambiente para runtime
ENV PORT=3100
ENV HOSTNAME="0.0.0.0"
ENV NEXT_PUBLIC_SITE_URL=https://portal.automatizase.com.br
ENV NEXT_PUBLIC_SUPABASE_URL=https://supabase.automatizase.com.br
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzU5NTI0OTkwLCJleHAiOjIwNzQ4ODQ5OTB9.vAXVcWzQESACqlP6UCw2_8EwQRFTRZFfLW47xRrd23o
ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=174466774807-tdsht53agf7v40suk5mmqgmfrn4iskck.apps.googleusercontent.com
ENV SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaXNzIjoic3VwYWJhc2UiLCJpYXQiOjE3NTk1MjQ5OTAsImV4cCI6MjA3NDg4NDk5MH0.rkZfAs65vTceDDxWBdencfBtMH22l5ix_XPqltCk5j4
ENV GOOGLE_CLIENT_SECRET=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
ENV EVOLUTION_API_URL=https://evolutionapi.automatizase.com.br
ENV EVOLUTION_API_KEY=03919932dcb10fee6f28b1f1013b304c
ENV EVOLUTION_INSTANCE_NAMES="Rita,Lucia Refugio"
ENV N8N_API_URL=https://n8n.automatizase.com.br/api/v1
ENV N8N_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4NjNjYjM1MC1hZGY3LTRiZGMtYWRlNi01OGRmYWYyNmNmYjYiLCJpc3MiOiJuOG4iLCJhdWQiOiJwdWJsaWMtYXBpIiwiaWF0IjoxNzYwMjk5MjQ1fQ.pj94fvK9fI181NsGr65Orvp4iiO19qU9D_-vVRUkPbw
ENV N8N_OAUTH_URL=https://n8n.automatizase.com.br/webhook/google-oauth
# Labels para rastreabilidade
LABEL org.opencontainers.image.title="AutomatizaSE Portal"
LABEL org.opencontainers.image.description="Portal de Automação AutomatizaSE"
LABEL org.opencontainers.image.vendor="AutomatizaSE"
# Comando de produção
CMD ["node", "server.js"]