728x90
1.Pipeline 생성
jenkins에서 새로운 아이템을 Pipeline으로 생성해줍니다.
2.Gradle 버전 설정
jenkins 관리 ->Tools ->Gradle installations에 Gradle이 설정되있는지 확인합니다.
3. Pipeline Script 생성
pipeline {
agent any
stages {
stage('github clone') {
steps {
git branch: 'master', credentialsId: 'jenkins_gradle', url: 'https://github.com/yougeun6021/Jenkins_gradle_jar'
}
post{
failure{
ehco 'fail github clone'
}
}
}
stage('Grant execute permission for gradlew'){
steps{
sh '''
chmod +x gradlew
'''
}
post{
failure{
ehco 'fail Grant'
}
}
}
stage('build'){
steps{
sh '''
echo build start
./gradlew clean build
'''
}
post{
failure{
ehco 'fail build'
}
}
}
stage('deploy'){
steps{
sshPublisher(publishers: [sshPublisherDesc(configName: 'pi', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/project', remoteDirectorySDF: false, removePrefix: 'build/libs', sourceFiles: 'build/libs/*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
post{
failure{
ehco 'fail deploy'
}
}
}
}
}
1.github_clone : Pipeline Syntax를 이용하여 github에서 원하는 프로젝트를 가지고옵니다.
2.Grant execute permission for gradlew: gradlew 명령어를 쓸 수 있도록 권한을 부여합니다.
3.build:gradle로 build합니다.
4.deploy:Pipeline Syntax를 이용하여 원하는 server에 배포합니다.
4.배포 확인
원하는 jar파일이 배포된 것을 확인 할 수 있습니다.
5. docker 배포하기
1.Dockerfile 생성
#Dockerfile 생성
vim Dockerfile
FROM openjdk:11-jdk
COPY jenkins_gradle.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
2.ssh publisher 변경
#Dockerfile 있는 곳으로 이동
cd project
#이미지 생성
docker build -t docker_gradle -f Dockerfile .;
#컨테이너 구동
docker run -d -p 8888:8081 --name gradle_project docker_gradle:latest
1.Name:sshserver name
2. Source files:jar 파일이 생성된곳(default:build/libs/*.jar)
3.Remove prefix: *.jar파일만 남도록 build/libs 제거
4.Remote directory:jar파일이 생성되는 곳
5.Exec command:배포 후 command
sshpublisher pipeline syntax에서 exec command를 추가하여 3번의 pileline script를 변경해줍니다.
6.배포 확인
728x90
'devops' 카테고리의 다른 글
docker-compose를 이용한 spring,Nginx 서버 연결 및 https설정하기 (0) | 2024.04.02 |
---|---|
docker volume을 이용하여 Nginx 배포하기(가비아 도메인 연결) (0) | 2024.04.02 |
Ubuntu에 docker 설치하기 (0) | 2024.03.28 |
Rashberry pi Ubuntu 서버 설치 및 외부 아이피 ssh 연결 (0) | 2024.03.26 |
Ec2 docker 서버에 배포하기(maven,war) (0) | 2024.03.25 |