diff --git a/Jenkinsfile b/Jenkinsfile index 1e2486c..54576b3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,6 @@ pipeline { REMOTE_USER = 'root' REMOTE_HOST = '10.5.0.116' REMOTE_PATH = '/compose' - DOCKER_CREDENTIALS = credentials('gitea-docker-registry') } stages { stage('Obtener Nombre del Repositorio') { @@ -38,11 +37,6 @@ pipeline { script { try { sh """ - ls -la - ls -la src echo "Directorio src no encontrado" - ls -la src/main/docker echo "Directorio src/main/docker no encontrado" - cat .dockerignore || echo ".dockerignore no encontrado" - docker -v docker build \ -t ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} . docker tag ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} \ @@ -57,9 +51,9 @@ pipeline { stage('Push to Registry') { steps { script { - try { - docker.withRegistry("https://${URL_REGISTRY}", 'gitea-docker-registry') { + withCredentials([usernamePassword(credentialsId: 'gitea-docker-registry', usernameVariable: 'REG_USR', passwordVariable: 'REG_PSW')]) { sh """ + docker login ${URL_REGISTRY} -u ${REG_USR} -p ${REG_PSW} docker push ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} docker push ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:latest """ @@ -85,7 +79,9 @@ services: - "traefik.http.routers.${NAME_SERVICE}.rule=Host(recall.vodorod.cl)" environment: - TZ=America/Santiago - - DATABASE_URL=file:/app/data/dev.db + - ADMIN_TOKEN=${ADMIN_TOKEN} + - DATA_ROOT=/app/data + - CORS_ORIGIN=* volumes: - ./data:/app/data networks: @@ -98,26 +94,27 @@ networks: external: true """ writeFile file: 'docker-compose.yaml', text: dockerComposeTemplate - sshagent(['gitea-ssh']) { + sshagent(credentials: ['ssh-virtual-machine']) { + withCredentials([usernamePassword(credentialsId: 'gitea-docker-registry', usernameVariable: 'REG_USR', passwordVariable: 'REG_PSW')]) { sh """ - ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'mkdir -p ${REMOTE_PATH}/${NAME_SERVICE}' - scp docker-compose.yaml ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/${NAME_SERVICE}/ - ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_PATH}/${NAME_SERVICE} && docker-compose down || true' - ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_PATH}/${NAME_SERVICE} && docker-compose up -d' + ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "docker login \${URL_REGISTRY} -u \${REG_USR} -p \${REG_PSW}" + ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "mkdir -p \${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE}" + scp docker-compose.yaml \${REMOTE_USER}@\${REMOTE_HOST}:\${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE}/docker-compose.yaml + ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "cd \${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE} && docker compose down && docker compose pull && docker compose up -d" + ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "docker system prune -f" """ } } } } } - stage('Notificación') { - steps { - script { - echo "Pipeline completado exitosamente para ${NAME_SERVICE}" - echo "Build: ${BUILD_NUMBER}" - echo "URL: ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER}" - } - } - } + } + post { + always { + cleanWs() + } + failure { + echo "Pipeline failed. Check logs for details." } } +}