추가 'Jenkinsfile'

This commit is contained in:
2023-03-22 14:50:16 +09:00
parent ba61914f79
commit 4ec24e6c7b

61
Jenkinsfile vendored Normal file
View File

@@ -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"
}
}
}