diff --git a/README.md b/README.md index fde5b52..71ed8bd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # django-core-base -// V-Encore Lab: Sistema Automatizado v1.0. +// V-Encore Lab: Sistema Automatizado v1.0.3 diff --git a/deployments/Jenkinsfile b/deployments/Jenkinsfile index 2a1ee8e..3042977 100644 --- a/deployments/Jenkinsfile +++ b/deployments/Jenkinsfile @@ -5,14 +5,13 @@ pipeline { stage('Configurar Entorno') { steps { script { - // Aquí asignamos las variables directamente al entorno global de la ejecución if (env.BRANCH_NAME == 'master') { - echo "--- MODO PRODUCCIÓN DETECTADO ---" + env.PROJECT_NAME = "django_master" // <--- Nombre único env.CONTAINER_NAME = "django_app_master" env.PORT = "8001" env.DEBUG_MODE = "0" - } else if (env.BRANCH_NAME == 'dev') { - echo "--- MODO DESARROLLO DETECTADO ---" + } else { + env.PROJECT_NAME = "django_dev" // <--- Nombre único env.CONTAINER_NAME = "django_app_dev" env.PORT = "8000" env.DEBUG_MODE = "1" @@ -22,17 +21,22 @@ pipeline { } stage('Despliegue') { - when { - anyOf { branch 'dev'; branch 'master' } - } - steps { - echo "EJECUTANDO DOCKER: ${env.CONTAINER_NAME} en el puerto ${env.PORT}" - - // Forzamos a Docker a leer las variables y usamos un nombre de proyecto fijo (-p) - // Busca esta línea en tu Jenkinsfile y añade el final: - sh "CONTAINER_NAME=${CONTAINER_NAME} PORT=${PORT} DEBUG_MODE=${DEBUG_MODE} docker compose -p django_bac -f deployments/docker-compose.yml up -d --build web" - } - } + when { anyOf { branch 'dev'; branch 'master' } } + steps { + echo "DESPLEGANDO: ${env.CONTAINER_NAME} en el puerto ${env.PORT}" + + // 1. Levantamos el contenedor con su nombre de proyecto único (-p) + sh """ + CONTAINER_NAME=${env.CONTAINER_NAME} \ + PORT=${env.PORT} \ + DEBUG_MODE=${env.DEBUG_MODE} \ + docker compose -p ${env.PROJECT_NAME} -f deployments/docker-compose.yml up -d --build web + """ + + // 2. Ejecutamos migraciones automáticamente al terminar + echo "Ejecutando migraciones en ${env.CONTAINER_NAME}..." + sh "docker exec ${env.CONTAINER_NAME} python manage.py migrate --noinput" + } + } } -} -// Automatización activada \ No newline at end of file +} \ No newline at end of file diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index f470342..55ece57 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -5,22 +5,21 @@ services: dockerfile: deployments/Dockerfile container_name: ${CONTAINER_NAME} restart: always + working_dir: /app # <--- Vital para que encuentre 'core' environment: - - DEBUG=${DEBUG_MODE} - # Piezas sueltas para Django: - - DB_NAME=gitea - - DB_USER=gitea - - DB_PASSWORD=gitea - - DB_HOST=gitea-db-1 - - DB_PORT=5432 - # Mantenemos esta por si acaso la usas en otro sitio: - - DATABASE_URL=postgres://gitea:gitea@gitea-db-1:5432/gitea + - DEBUG=${DEBUG_MODE} + - PYTHONPATH=/app # <--- Asegura que Python vea las carpetas + - DB_NAME=gitea + - DB_USER=gitea + - DB_PASSWORD=gitea + - DB_HOST=gitea-db-1 + - DB_PORT=5432 networks: - - gitea_net # Nombre interno para este archivo + - gitea_net ports: - "${PORT}:8000" networks: gitea_net: external: true - name: frontend # <--- Este es el nombre real que vimos en el JSON \ No newline at end of file + name: frontend \ No newline at end of file