feat(deploy): implement standalone docker deployment pattern
Some checks are pending
Deploy Core (Dashboard & Identity Gateway) / deploy-dev (push) Waiting to run
Some checks are pending
Deploy Core (Dashboard & Identity Gateway) / deploy-dev (push) Waiting to run
- Added Dashboard Dockerfile - Created deploy-core.sh script for container management without compose - Following gohorsejobs infrastructure pattern Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
e3d198c792
commit
c06d785832
2 changed files with 85 additions and 0 deletions
25
dashboard/Dockerfile
Normal file
25
dashboard/Dockerfile
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# Stage 1: Build
|
||||
FROM node:22-alpine AS builder
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
COPY . .
|
||||
# Variáveis dummy para o build não falhar (se necessário)
|
||||
ENV ZITADEL_ISSUER=http://localhost:8080
|
||||
ENV ZITADEL_CLIENT_ID=dummy
|
||||
ENV ZITADEL_CLIENT_SECRET=dummy
|
||||
ENV NEXTAUTH_SECRET=dummy
|
||||
RUN npm run build
|
||||
|
||||
# Stage 2: Run
|
||||
FROM node:22-alpine AS runner
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
COPY --from=builder /app/public ./public
|
||||
COPY --from=builder /app/.next ./.next
|
||||
COPY --from=builder /app/node_modules ./node_modules
|
||||
COPY --from=builder /app/package.json ./package.json
|
||||
COPY --from=builder /app/.env.local ./.env.local
|
||||
|
||||
EXPOSE 3000
|
||||
CMD ["npm", "start"]
|
||||
60
deploy-core.sh
Executable file
60
deploy-core.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Configurações
|
||||
PROJECT_NAME="rede5-core"
|
||||
NETWORK_NAME="core-network"
|
||||
DB_CONTAINER="ghj-db-dev" # Usando o banco existente conforme solicitado
|
||||
ZITADEL_IMAGE="ghcr.io/zitadel/zitadel:v2.42.2"
|
||||
DASHBOARD_IMAGE="rede5-dashboard:latest"
|
||||
MASTERKEY="MasterkeyNeedsToHave32Characters"
|
||||
|
||||
echo "🚀 Iniciando Deploy do Core ($PROJECT_NAME)"
|
||||
|
||||
# 1. Criar rede se não existir
|
||||
docker network inspect $NETWORK_NAME >/dev/null 2>&1 || \
|
||||
docker network create $NETWORK_NAME
|
||||
|
||||
# 2. Conectar o banco existente à rede (se ainda não estiver)
|
||||
docker network connect $NETWORK_NAME $DB_CONTAINER 2>/dev/null || true
|
||||
|
||||
# 3. Setup do Zitadel (Passo inicial)
|
||||
echo "⚙️ Executando Setup do Zitadel..."
|
||||
docker run --rm \
|
||||
--network $NETWORK_NAME \
|
||||
-v /root/zitadel-config.yaml:/zitadel-config.yaml:ro \
|
||||
$ZITADEL_IMAGE \
|
||||
setup --masterkey "$MASTERKEY" --config /zitadel-config.yaml
|
||||
|
||||
# 4. Iniciar Zitadel
|
||||
echo "🔐 Iniciando Zitadel..."
|
||||
docker stop zitadel 2>/dev/null || true
|
||||
docker rm zitadel 2>/dev/null || true
|
||||
docker run -d \
|
||||
--name zitadel \
|
||||
--network $NETWORK_NAME \
|
||||
-p 8080:8080 \
|
||||
-v /root/zitadel-config.yaml:/zitadel-config.yaml:ro \
|
||||
-e ZITADEL_MASTERKEY="$MASTERKEY" \
|
||||
$ZITADEL_IMAGE \
|
||||
start-from-setup --masterkey "$MASTERKEY" --config /zitadel-config.yaml
|
||||
|
||||
# 5. Build do Dashboard
|
||||
echo "🏗️ Building Dashboard Image..."
|
||||
cd dashboard
|
||||
docker build -t $DASHBOARD_IMAGE .
|
||||
cd ..
|
||||
|
||||
# 6. Iniciar Dashboard
|
||||
echo "🖥️ Iniciando Dashboard..."
|
||||
docker stop core-dashboard 2>/dev/null || true
|
||||
docker rm core-dashboard 2>/dev/null || true
|
||||
docker run -d \
|
||||
--name core-dashboard \
|
||||
--network $NETWORK_NAME \
|
||||
-p 3005:3000 \
|
||||
--env-file dashboard/.env.local \
|
||||
$DASHBOARD_IMAGE
|
||||
|
||||
echo "✅ Deploy Concluído!"
|
||||
echo "Auth: http://auth.rede5.com.br (Porta 8080)"
|
||||
echo "Dashboard: http://dashboard.rede5.com.br (Porta 3005)"
|
||||
Loading…
Reference in a new issue