-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
131 lines (114 loc) · 4.11 KB
/
Copy pathJenkinsfile
File metadata and controls
131 lines (114 loc) · 4.11 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
pipeline {
agent any
stages {
stage('Prepare') {
steps {
sh 'echo "Clonning Repository"'
git branch: 'release',
url: 'https://lab.ssafy.com/s07-final/S07P31B307.git',
credentialsId: 'DIA'
}
post {
success {
sh 'echo "Successfully Cloned Repository"'
}
failure {
sh 'echo "Fail Cloned Repository"'
}
}
}
stage('Docker stop'){
steps {
// sh 'echo "root ubuntu" | sudo -S ls'
// sh 'ls'
sh 'sudo chmod -R 777 /usr/local/bin'
sh 'sudo chmod +x /usr/local/bin/docker-compose'
sh 'echo "Docker Container Stop"'
// 도커 컴포즈 다운
// sh 'curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose'
// 해당 도커 컴포즈 다운한 경로로 권한 설정
// sh 'chmod -R 777 /usr/local/bin'
// sh 'chmod +x /usr/local/bin/docker-compose'
// 기존 백그라운드에 돌아가던 컨테이너 중지
sh 'sudo docker-compose stop'
}
post {
failure {
sh 'echo "Docker Fail"'
}
}
}
stage('RM Docker'){
steps {
sh 'echo "Remove Docker"'
//정지된 도커 컨테이너 찾아서 컨테이너 ID로 삭제함
sh '''
result=$(sudo docker container ls -a --filter "name=dia*" -q )
if [ -n "$result" ]
then
sudo docker rm $(sudo docker container ls -a --filter "name=dia*" -q)
else
echo "No such containers"
fi
'''
// dia로 시작하는 이미지 찾아서 삭제함
sh '''
result=$(sudo docker images -f "reference=dia*" -q )
if [ -n "$result" ]
then
sudo docker rmi -f $(sudo docker images -f "reference=dia*" -q)
else
echo "No such container images"
fi
'''
// 안쓰는이미지 -> <none> 태그 이미지 찾아서 삭제함
sh '''
result=$(sudo docker images -f "dangling=true" -q)
if [ -n "$result" ]
then
sudo docker rmi -f $(sudo docker images -f "dangling=true" -q)
else
echo "No such container images"
fi
'''
}
post {
failure {
sh 'echo "Remove Fail"'
}
}
}
stage('Build Gradle'){
steps{
dir('backend') {
sh "sudo chmod +x gradlew"
sh """
sudo ./gradlew clean build --exclude-task test
"""
}
}
post{
failure{
sh 'echo "Build Gradle Fail"'
}
}
}
stage('Bulid & Run') {
steps {
sh 'echo " Image Bulid Start"'
script {
// 업데이트된 코드로 빌드 및 실행
sh 'sudo docker-compose up -d'
sh 'sudo chmod 777 -R /home/ubuntu/profile'
sh 'sudo chmod 777 -R /var/lib/docker'
sh 'sudo chmod 777 -R /var/lib/docker/containers/*'
}
}
post {
failure {
sh 'echo "Bulid Docker Fail"'
}
}
}
}
}