fix(deploy): resolver 502 CMS remoto y estandarizar buildx/s3
- corrige host remoto de deploy y automatiza buildx en servidor - agrega configuracion S3 (bucket openccb-802726101181-us-east-2-an) - actualiza Dockerfile de studio a rust:1-bookworm para evitar error GLIBC - activa cache mounts de buildkit para cargo/npm en studio
This commit is contained in:
@@ -56,6 +56,15 @@ MYSQL_DATABASE_URL=mysql://db_user:db_password@host:3306/database_name
|
|||||||
EXTERNAL_TABLE_GRADES=notas
|
EXTERNAL_TABLE_GRADES=notas
|
||||||
EXTERNAL_ID_TIPO_NOTA=1
|
EXTERNAL_ID_TIPO_NOTA=1
|
||||||
|
|
||||||
|
# ----------------------------------------
|
||||||
|
# AWS S3 Configuration (audio storage)
|
||||||
|
# Bucket: openccb-802726101181-us-east-2-an
|
||||||
|
# ----------------------------------------
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_REGION=us-east-2
|
||||||
|
S3_BUCKET=openccb-802726101181-us-east-2-an
|
||||||
|
|
||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
# Mercado Pago Configuration
|
# Mercado Pago Configuration
|
||||||
# ----------------------------------------
|
# ----------------------------------------
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# OpenCCB Unified Deployment Script
|
# OpenCCB Unified Deployment Script
|
||||||
# Despliegue automático en AWS EC2 con SSL (Let's Encrypt)
|
# Despliegue automático en AWS EC2 con SSL (Let's Encrypt)
|
||||||
# Servidor: ec2-18-224-137-67.us-east-2.compute.amazonaws.com
|
# Servidor: ec2-18-118-158-99.us-east-2.compute.amazonaws.com
|
||||||
# Dominios: studio.norteamericano.com, learning.norteamericano.com
|
# Dominios: studio.norteamericano.com, learning.norteamericano.com
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
@@ -17,7 +17,7 @@ echo ""
|
|||||||
# ============================================================================
|
# ============================================================================
|
||||||
PEM_PATH="ubuntu.pem"
|
PEM_PATH="ubuntu.pem"
|
||||||
REMOTE_USER="ubuntu"
|
REMOTE_USER="ubuntu"
|
||||||
REMOTE_HOST="ec2-18-224-137-67.us-east-2.compute.amazonaws.com"
|
REMOTE_HOST="ec2-18-118-158-99.us-east-2.compute.amazonaws.com"
|
||||||
REMOTE_PATH="/var/www/openccb"
|
REMOTE_PATH="/var/www/openccb"
|
||||||
# Cambiar a "false" para usar Let's Encrypt production (solo después de rate limits)
|
# Cambiar a "false" para usar Let's Encrypt production (solo después de rate limits)
|
||||||
LETSENCRYPT_STAGING="true"
|
LETSENCRYPT_STAGING="true"
|
||||||
@@ -434,6 +434,23 @@ sed -i "/^NEXT_PUBLIC_LMS_API_URL=/d" .env 2>/dev/null || true
|
|||||||
echo "NEXT_PUBLIC_CMS_API_URL=\$CMS_URL" >> .env
|
echo "NEXT_PUBLIC_CMS_API_URL=\$CMS_URL" >> .env
|
||||||
echo "NEXT_PUBLIC_LMS_API_URL=\$LMS_URL" >> .env
|
echo "NEXT_PUBLIC_LMS_API_URL=\$LMS_URL" >> .env
|
||||||
|
|
||||||
|
# Configurar S3 para almacenamiento de audio
|
||||||
|
if ! grep -q "^S3_BUCKET=" .env || grep -q "^S3_BUCKET=$" .env; then
|
||||||
|
sed -i "/^S3_BUCKET=/d" .env 2>/dev/null || true
|
||||||
|
echo "S3_BUCKET=openccb-802726101181-us-east-2-an" >> .env
|
||||||
|
fi
|
||||||
|
if ! grep -q "^AWS_REGION=" .env || grep -q "^AWS_REGION=$" .env; then
|
||||||
|
sed -i "/^AWS_REGION=/d" .env 2>/dev/null || true
|
||||||
|
echo "AWS_REGION=us-east-2" >> .env
|
||||||
|
fi
|
||||||
|
# AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY se mantienen si ya existen
|
||||||
|
if ! grep -q "^AWS_ACCESS_KEY_ID=" .env; then
|
||||||
|
echo "AWS_ACCESS_KEY_ID=" >> .env
|
||||||
|
fi
|
||||||
|
if ! grep -q "^AWS_SECRET_ACCESS_KEY=" .env; then
|
||||||
|
echo "AWS_SECRET_ACCESS_KEY=" >> .env
|
||||||
|
fi
|
||||||
|
|
||||||
# Asegurar dominios públicos para nginx-proxy y certificados SSL
|
# Asegurar dominios públicos para nginx-proxy y certificados SSL
|
||||||
sed -i "/^NEXT_PUBLIC_STUDIO_DOMAIN=/d" .env 2>/dev/null || true
|
sed -i "/^NEXT_PUBLIC_STUDIO_DOMAIN=/d" .env 2>/dev/null || true
|
||||||
sed -i "/^NEXT_PUBLIC_LEARNING_DOMAIN=/d" .env 2>/dev/null || true
|
sed -i "/^NEXT_PUBLIC_LEARNING_DOMAIN=/d" .env 2>/dev/null || true
|
||||||
|
|||||||
+12
-6
@@ -1,5 +1,7 @@
|
|||||||
|
# syntax=docker/dockerfile:1.7
|
||||||
|
|
||||||
# Build stage for Rust CMS
|
# Build stage for Rust CMS
|
||||||
FROM rustlang/rust:nightly AS rust-builder
|
FROM rust:1-bookworm AS rust-builder
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
# Install system dependencies first
|
# Install system dependencies first
|
||||||
@@ -11,20 +13,24 @@ COPY shared/ ./shared/
|
|||||||
COPY services/ ./services/
|
COPY services/ ./services/
|
||||||
|
|
||||||
# Build the CMS service
|
# Build the CMS service
|
||||||
RUN cargo build --release -p cms-service
|
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
||||||
|
--mount=type=cache,target=/usr/local/cargo/git \
|
||||||
|
--mount=type=cache,target=/tmp/cargo-target \
|
||||||
|
CARGO_TARGET_DIR=/tmp/cargo-target cargo build --release -p cms-service && \
|
||||||
|
cp /tmp/cargo-target/release/cms-service /usr/src/app/cms-service
|
||||||
|
|
||||||
# Build stage for Next.js Studio
|
# Build stage for Next.js Studio
|
||||||
FROM node:20-alpine AS node-builder
|
FROM node:20-alpine AS node-builder
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY web/studio/package*.json ./
|
COPY web/studio/package*.json ./
|
||||||
RUN npm ci
|
RUN --mount=type=cache,target=/root/.npm npm ci
|
||||||
COPY web/studio/ .
|
COPY web/studio/ .
|
||||||
ARG NEXT_PUBLIC_CMS_API_URL
|
ARG NEXT_PUBLIC_CMS_API_URL
|
||||||
ARG NEXT_PUBLIC_LMS_API_URL
|
ARG NEXT_PUBLIC_LMS_API_URL
|
||||||
ENV NEXT_PUBLIC_CMS_API_URL=$NEXT_PUBLIC_CMS_API_URL
|
ENV NEXT_PUBLIC_CMS_API_URL=$NEXT_PUBLIC_CMS_API_URL
|
||||||
ENV NEXT_PUBLIC_LMS_API_URL=$NEXT_PUBLIC_LMS_API_URL
|
ENV NEXT_PUBLIC_LMS_API_URL=$NEXT_PUBLIC_LMS_API_URL
|
||||||
RUN npm run build
|
RUN --mount=type=cache,target=/root/.npm npm run build
|
||||||
|
|
||||||
# Final stage
|
# Final stage
|
||||||
FROM node:20-slim AS runner
|
FROM node:20-slim AS runner
|
||||||
@@ -35,10 +41,10 @@ ENV NODE_ENV production
|
|||||||
RUN apt-get update && apt-get install -y openssl ca-certificates && rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get install -y openssl ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Install sharp for Next.js image optimization
|
# Install sharp for Next.js image optimization
|
||||||
RUN npm install sharp
|
RUN --mount=type=cache,target=/root/.npm npm install sharp
|
||||||
|
|
||||||
# Copy CMS binary
|
# Copy CMS binary
|
||||||
COPY --from=rust-builder /usr/src/app/target/release/cms-service ./
|
COPY --from=rust-builder /usr/src/app/cms-service ./
|
||||||
|
|
||||||
# Copy Studio frontend
|
# Copy Studio frontend
|
||||||
COPY --from=node-builder /app/public ./public
|
COPY --from=node-builder /app/public ./public
|
||||||
|
|||||||
Reference in New Issue
Block a user