| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*
- 1. added
- client_max_body_size 0;
- to avoid 413 error
- */
- node {
- def app
- def registryAddress
- def registryCredential
- try {
- // environment {
- registryAddress = "https://000-sidali.kemdiktisaintek.go.id"
- registryCredential = 'DockerRegistry-ID'
- // }
- stage('Checkout') {
- checkout scm
- }
-
- stage('Initialize'){
- def dockerHome = tool 'myDocker'
- env.PATH = "${dockerHome}/bin:${env.PATH}"
- }
-
- stage('Environment') {
- sh 'git --version'
- echo "Branch: master"
- sh 'docker -v'
- sh 'printenv'
- }
-
- stage('Test Build'){
- sh 'docker build -t ptb-be -f dockerfile .'
- }
-
- stage('Build Deploy '){
- docker.withTool("myDocker"){
- docker.withRegistry(registryAddress, registryCredential) {
- def dockerImage = docker.build("ptb-be:${env.BUILD_ID}")
- /* Push the container to the custom Registry */
- dockerImage.push()
- dockerImage.push('latest')
- }
- }
- }
- stage('Deploy to 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
-
- 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'
- def composeDir = '/workdir/production' // Sesuaikan dengan path di server
-
- 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 ptb-Backend || true"
- sh "docker rm ptb-Backend || true"
-
- // Jalankan container baru
- sh """
- cd ${composeDir} &&
- docker compose stop ptb-Backend &&
- docker compose rm -f ptb-Backend &&
- docker compose up -d ptb-Backend
- """
-
- echo "Deploy completed successfully"
- }
- // }
- }
- }
- }
- catch (err) {
- throw err
- }
- }
|