scrip y yaml del proyecto
This commit is contained in:
parent
a2fa4a9a75
commit
655e61c291
49
desplegar.sh
Executable file
49
desplegar.sh
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Colores para la terminal
|
||||||
|
VERDE='\033[0;32m'
|
||||||
|
AZUL='\033[0;34m'
|
||||||
|
AMARILLO='\033[1;33m'
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
echo -e "${AZUL}====================================================${NC}"
|
||||||
|
echo -e "${AZUL} S.I.P - Sistema de Identificación Papiloscópica ${NC}"
|
||||||
|
echo -e "${AZUL} Script de Despliegue y Sincronización ${NC}"
|
||||||
|
echo -e "${AZUL}====================================================${NC}"
|
||||||
|
|
||||||
|
# 1. Detener contenedores previos y limpiar volúmenes huérfanos
|
||||||
|
echo -e "\n${AMARILLO}[1/4] Limpiando el entorno Docker anterior...${NC}"
|
||||||
|
docker compose down --remove-orphans
|
||||||
|
|
||||||
|
# 2. Levantar los servicios en segundo plano (Backend, Frontend, Postgres)
|
||||||
|
echo -e "\n${AMARILLO}[2/4] Levantando contenedores en modo detached...${NC}"
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# Esperar unos segundos a que la base de datos PostgreSQL acepte conexiones
|
||||||
|
echo -e "${VERDE}Esperando que PostgreSQL inicialice correctamente...${NC}"
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
# 3. Ejecutar ciclo de migraciones del ORM en el Backend
|
||||||
|
echo -e "\n${AMARILLO}[3/4] Sincronizando estructura de base de datos...${NC}"
|
||||||
|
|
||||||
|
# Verificar si la carpeta de migraciones ya existe en el contenedor
|
||||||
|
if docker exec huellas_api [ ! -d "migrations" ]; then
|
||||||
|
echo -e "${VERDE}-> Inicializando repositorio de Flask-Migrate...${NC}"
|
||||||
|
docker exec -it -e FLASK_APP=run.py huellas_api flask db init
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${VERDE}-> Generando script de migración para las tablas papiloscópicas...${NC}"
|
||||||
|
docker exec -it -e FLASK_APP=run.py huellas_api flask db migrate -m "migracion_sistema_papiloscopico"
|
||||||
|
|
||||||
|
echo -e "${VERDE}-> Impactando esquema relacional en PostgreSQL...${NC}"
|
||||||
|
docker exec -it -e FLASK_APP=run.py huellas_api flask db upgrade
|
||||||
|
|
||||||
|
# 4. Ejecutar sembrado de datos iniciales
|
||||||
|
echo -e "\n${AMARILLO}[4/4] Ejecutando Seeders de control...${NC}"
|
||||||
|
docker exec -it -e FLASK_APP=run.py huellas_api flask seed
|
||||||
|
|
||||||
|
echo -e "\n${VERDE}====================================================${NC}"
|
||||||
|
echo -e "${VERDE} ¡PROCESO FINALIZADO CON ÉXITO! ${NC}"
|
||||||
|
echo -e "${VERDE} API escuchando, base de datos Postgres al día. ${NC}"
|
||||||
|
echo -e "${VERDE} Frontend listo en http://localhost:8080 ${NC}"
|
||||||
|
echo -e "${VERDE}====================================================${NC}"
|
||||||
55
docker-compose.yml
Normal file
55
docker-compose.yml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:15-alpine
|
||||||
|
container_name: sip_db
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
|
ports:
|
||||||
|
- "${POSTGRES_PORT}:5432"
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- sip_network
|
||||||
|
|
||||||
|
api:
|
||||||
|
build: ./api
|
||||||
|
container_name: sip_api
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./api:/app
|
||||||
|
ports:
|
||||||
|
- "${FLASK_PORT}:5000"
|
||||||
|
environment:
|
||||||
|
- FLASK_ENV=${FLASK_ENV}
|
||||||
|
- DATABASE_URL=${DATABASE_URL}
|
||||||
|
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
networks:
|
||||||
|
- sip_network
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
build: ./frontend
|
||||||
|
container_name: sip_front
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./frontend:/app
|
||||||
|
- /app/node_modules
|
||||||
|
ports:
|
||||||
|
- "${VITE_PORT}:8080"
|
||||||
|
environment:
|
||||||
|
- VITE_API_BASE_URL=${VITE_API_BASE_URL}
|
||||||
|
depends_on:
|
||||||
|
- api
|
||||||
|
networks:
|
||||||
|
- sip_network
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
sip_network:
|
||||||
|
driver: bridge
|
||||||
Loading…
Reference in New Issue
Block a user