fix: update Jenkinsfile with correct sshagent and deploy syntax

This commit is contained in:
Hiro
2026-03-28 11:11:41 +00:00
parent d1dbd22766
commit 7973d02a4f

41
Jenkinsfile vendored
View File

@@ -10,7 +10,6 @@ pipeline {
REMOTE_USER = 'root' REMOTE_USER = 'root'
REMOTE_HOST = '10.5.0.116' REMOTE_HOST = '10.5.0.116'
REMOTE_PATH = '/compose' REMOTE_PATH = '/compose'
DOCKER_CREDENTIALS = credentials('gitea-docker-registry')
} }
stages { stages {
stage('Obtener Nombre del Repositorio') { stage('Obtener Nombre del Repositorio') {
@@ -38,11 +37,6 @@ pipeline {
script { script {
try { try {
sh """ 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 \ docker build \
-t ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} . -t ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER} .
docker tag ${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') { stage('Push to Registry') {
steps { steps {
script { script {
try { withCredentials([usernamePassword(credentialsId: 'gitea-docker-registry', usernameVariable: 'REG_USR', passwordVariable: 'REG_PSW')]) {
docker.withRegistry("https://${URL_REGISTRY}", 'gitea-docker-registry') {
sh """ 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}:${BUILD_NUMBER}
docker push ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:latest docker push ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:latest
""" """
@@ -85,7 +79,9 @@ services:
- "traefik.http.routers.${NAME_SERVICE}.rule=Host(recall.vodorod.cl)" - "traefik.http.routers.${NAME_SERVICE}.rule=Host(recall.vodorod.cl)"
environment: environment:
- TZ=America/Santiago - TZ=America/Santiago
- DATABASE_URL=file:/app/data/dev.db - ADMIN_TOKEN=${ADMIN_TOKEN}
- DATA_ROOT=/app/data
- CORS_ORIGIN=*
volumes: volumes:
- ./data:/app/data - ./data:/app/data
networks: networks:
@@ -98,26 +94,27 @@ networks:
external: true external: true
""" """
writeFile file: 'docker-compose.yaml', text: dockerComposeTemplate 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 """ sh """
ssh -o StrictHostKeyChecking=no ${REMOTE_USER}@${REMOTE_HOST} 'mkdir -p ${REMOTE_PATH}/${NAME_SERVICE}' ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "docker login \${URL_REGISTRY} -u \${REG_USR} -p \${REG_PSW}"
scp docker-compose.yaml ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_PATH}/${NAME_SERVICE}/ ssh -o StrictHostKeyChecking=no \${REMOTE_USER}@\${REMOTE_HOST} "mkdir -p \${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE}"
ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_PATH}/${NAME_SERVICE} && docker-compose down || true' scp docker-compose.yaml \${REMOTE_USER}@\${REMOTE_HOST}:\${REMOTE_PATH}/\${PROJECT}/\${NAME_SERVICE}/docker-compose.yaml
ssh ${REMOTE_USER}@${REMOTE_HOST} 'cd ${REMOTE_PATH}/${NAME_SERVICE} && docker-compose up -d' 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 { post {
script { always {
echo "Pipeline completado exitosamente para ${NAME_SERVICE}" cleanWs()
echo "Build: ${BUILD_NUMBER}" }
echo "URL: ${URL_REGISTRY}/${PROJECT}/${NAME_SERVICE}:${BUILD_NUMBER}" failure {
} echo "Pipeline failed. Check logs for details."
}
} }
} }
} }