diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..2d2bbc7 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,61 @@ +def label = "eureka-${UUID.randomUUID().toString()}" + +podTemplate( + label: label, + containers: [ + //container image는 docker search 명령 이용 + containerTemplate(name: "docker", image: "docker:latest", ttyEnabled: true, command: "cat"), + containerTemplate(name: "gradle", image: "gradle", command: "cat", ttyEnabled: true), + containerTemplate(name: "kubectl", image: "bitnami/kubectl", command: "cat", ttyEnabled: true) + ], + //volume mount + volumes: [ + hostPathVolume(hostPath: "/var/run/docker.sock", mountPath: "/var/run/docker.sock") + ] +) +{ + node(label) { + + //-- 환경변수 파일 읽어서 변수값 셋팅 + def props = readProperties file:"./pipeline.properties" + def tag = props["version"] + def gitRepository = props["gitRepository"] + def git_credential=props["git_credential"] + def dockerRegistry = props["dockerRegistry"] + def registry_credential=props["registry_credential"] + def image = props["image"] + def deployment = props["deployment"] + def service = props["service"] + def ingress = props["ingress"] + def selector_key = props["selector_key"] + def selector_val = props["selector_val"] + def namespace = props["namespace"] + + stage("Get Source") { + git branch: 'master', credentialsId: ${git_credential}, url: ${gitRepository} + } + + try { + + stage("Gradle Build") { + container('gradle') { + sh './gradlew build' + } + } + + stage("Dockerize and Push") { + container("docker") { + docker.withRegistry("${dockerRegistry}", "${registry_credential}") { + sh "docker build -f ./Dockerfile -t ${image}:${tag} ." + sh "docker push ${image}:${tag}" + sh "docker tag ${image}:${tag} ${image}:latest" + sh "docker push ${image}:latest" + } + } + } + + } catch(e) { + currentBuild.result = "FAILED" + } + } +} \ No newline at end of file