Build Docker images without Docker using Img and Jenkins on Kubernetes

Monday, Aug 12, 2019| Tags: kubernetes, CICD, Jenkins

Note: I will be using an Amazon EKS cluster on AWS and using Amazon ECR for storing images. There will be minor differences for handling other repositories.

In the earlier post we learnt on how to to build a docker image using kubernete plugin in Jenkins on Kuberenetes. In this post we will look at how to build a docker image using Img. We will follow the same steps as the earlier post but will have a different pipeline script.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
pipeline {
  agent {
    kubernetes {
      //cloud 'kubernetes'
      yaml """
kind: Pod
metadata:
  name: img
spec:
  containers:
  - name: img
    image: jessfraz/img
    imagePullPolicy: Always
    command:
    - cat
    tty: true
    volumeMounts:
      - name: docker-config
        mountPath: /home/user/.docker
  volumes:
    - name: docker-config
      configMap:
        name: docker-config
"""
    }
  }
  stages {
    stage('Build with Img') {
      environment {
        PATH = "/home/user/bin:$PATH"
      }
      steps {
        git 'https://github.com/prabhatsharma/sample-microservice'
        container(name: 'img') {
            sh 'wget https://amazon-ecr-credential-helper-releases.s3.us-east-2.amazonaws.com/0.3.1/linux-amd64/docker-credential-ecr-login'
            sh 'chmod +x docker-credential-ecr-login'
            sh 'mkdir ~/bin'
            sh 'mv docker-credential-ecr-login ~/bin/docker-credential-ecr-login'
            sh '''
            img build . -t 107995894928.dkr.ecr.us-west-2.amazonaws.com/sample-microservice:latest -t 107995894928.dkr.ecr.us-west-2.amazonaws.com/sample-microservice:vImg$BUILD_NUMBER
            '''
            sh ' img push 107995894928.dkr.ecr.us-west-2.amazonaws.com/sample-microservice:latest'
            sh ' img push 107995894928.dkr.ecr.us-west-2.amazonaws.com/sample-microservice:vImg$BUILD_NUMBER'
        }
      }
    }
  }
}


Pay close attention from line 35 to 38 where we are downloading Amazon ECR credential helper and placing it in the container. We d



Comments