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'
}
}
}
}
}
|