pipeline { agent any stages { stage('Configurar Entorno') { steps { script { if (env.BRANCH_NAME == 'master') { env.PROJECT_NAME = "django_master" // <--- Nombre único env.CONTAINER_NAME = "django_app_master" env.PORT = "8001" env.DEBUG_MODE = "0" } else { env.PROJECT_NAME = "django_dev" // <--- Nombre único env.CONTAINER_NAME = "django_app_dev" env.PORT = "8000" env.DEBUG_MODE = "1" } } } } stage('Despliegue') { 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" } } } }