diff --git a/deployments/Jenkinsfile b/deployments/Jenkinsfile index 768a1fb..9639dae 100644 --- a/deployments/Jenkinsfile +++ b/deployments/Jenkinsfile @@ -1,35 +1,39 @@ pipeline { agent any + + environment { + // Valores por defecto para evitar errores + CONTAINER_NAME = "django_app_dev" + PORT = "8000" + DEBUG_MODE = "1" + } stages { - stage('Limpieza y Preparación') { + stage('Configurar Entorno') { steps { - echo 'Bajando la versión anterior para actualizar...' - // Añadimos -f para apuntar al archivo dentro de deployments - sh 'docker compose -f deployments/docker-compose.yml down || true' + script { + if (env.BRANCH_NAME == 'master') { + echo "--- CONFIGURANDO MODO PRODUCCIÓN (MASTER) ---" + CONTAINER_NAME = "django_app_master" + PORT = "8001" + DEBUG_MODE = "0" + } else if (env.BRANCH_NAME == 'dev') { + echo "--- CONFIGURANDO MODO DESARROLLO (DEV) ---" + CONTAINER_NAME = "django_app_dev" + PORT = "8000" + DEBUG_MODE = "1" + } + } } } - stage('Construcción (Build)') { - steps { - echo 'Construyendo la imagen de la API Django...' - // Añadimos -f para apuntar al archivo dentro de deployments - sh 'docker compose -f deployments/docker-compose.yml build' + stage('Despliegue') { + when { + anyOf { branch 'dev'; branch 'master' } } - } - - stage('Despliegue (Deploy)') { steps { - echo 'Arrancando el contenedor en producción...' - // Añadimos -f para apuntar al archivo dentro de deployments - sh 'docker compose -f deployments/docker-compose.yml up -d' - } - } - - stage('Verificación') { - steps { - echo 'Listando contenedores activos:' - sh 'docker ps' + // Usamos las variables que configuramos arriba + sh "docker compose -f deployments/docker-compose.yml up -d --build" } } } diff --git a/deployments/docker-compose.yml b/deployments/docker-compose.yml index d7296a7..4b5fd82 100644 --- a/deployments/docker-compose.yml +++ b/deployments/docker-compose.yml @@ -1,14 +1,14 @@ -version: '3.8' - -networks: - # Usamos la red que creamos al principio para que el Proxy lo vea - frontend: - external: true - services: web: build: - context: .. # IMPORTANTE: Los dos puntos suben a la raíz para ver core y apps + context: .. dockerfile: deployments/Dockerfile - container_name: django_app_dev - restart: always \ No newline at end of file + container_name: ${CONTAINER_NAME} + restart: always + environment: + - DEBUG=${DEBUG_MODE} + - DATABASE_URL=postgres://gitea:gitea_password@db:5432/gitea + networks: + - frontend + ports: + - "${PORT}:8000" \ No newline at end of file