dev #35
38
deployments/Jenkinsfile
vendored
38
deployments/Jenkinsfile
vendored
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
name: frontend
|
||||
Reference in New Issue
Block a user