yazid138 1 month ago
parent
commit
b652025ba1
1 changed files with 29 additions and 16 deletions
  1. 29 16
      Jenkinsfile

+ 29 - 16
Jenkinsfile

@@ -48,24 +48,37 @@ node {
      }
 
     stage('Deploy to Server'){
-        // SSH ke server dan restart container dengan image terbaru
-        // Pastikan credential SSH sudah dikonfigurasi di Jenkins dengan ID 'Server-SSH-ID'
-        def serverHost = '000-sidali.kemdiktisaintek.go.id'
-        def serverCredential = 'Server-SSH-ID'
-        def composeDir = '/path/to/docker-compose' // Sesuaikan dengan path di server
+        // Deploy menggunakan Docker plugin
+        // Pastikan Docker Host sudah dikonfigurasi di Jenkins (Manage Jenkins > Configure System > Docker)
+        // Server credential ID: 'Docker-Server-Cert' (untuk TLS) atau kosongkan jika tanpa TLS
         
-        sshagent(credentials: [serverCredential]) {
-            sh """
-                ssh -o StrictHostKeyChecking=no root@${serverHost} '
-                    cd ${composeDir} && 
-                    docker login ${registryAddress} -u \$DOCKER_USER -p \$DOCKER_PASS &&
-                    docker pull 000-sidali.kemdiktisaintek.go.id/ptb-be:latest &&
-                    docker-compose stop ptb-be &&
-                    docker-compose rm -f ptb-be &&
-                    docker-compose up -d ptb-be &&
+        def serverDockerHost = 'tcp://000-sidali.kemdiktisaintek.go.id:2376'
+        def serverCredential = 'Docker-Server-Cert' // Credential untuk Docker TLS certificates
+        def imageName = '000-sidali.kemdiktisaintek.go.id/ptb-be:latest'
+        
+        docker.withTool('myDocker') {
+            // Connect ke remote Docker daemon
+            // docker.withServer(serverDockerHost, serverCredential) {
+                // Login ke registry untuk pull image
+                docker.withRegistry(registryAddress, registryCredential) {
+                    // Pull image terbaru
+                    sh "docker pull ${imageName}"
+                    
+                    // Stop dan remove container lama (ignore error jika tidak ada)
+                    sh "docker stop ptbbe || true"
+                    sh "docker rm ptbbe || true"
+                    
+                    // Jalankan container baru
+                    sh """
+                        cd ${composeDir} && 
+                        docker-compose stop ptb-be && 
+                        docker-compose rm -f ptb-be && 
+                        docker-compose up -d ptb-be
+                    """
+                    
                     echo "Deploy completed successfully"
-                '
-            """
+                }
+            // }
         }
      }
   }