작성
·
27
0
jenkinsfile을 보면
코드가 주신대로 아래와 같고요
여기에서 [소스파일 체크아웃] 부분이 지나면 jenkins디렉토리 workspace 밑으로 해당 소스파일이 가져와서 폴더가 생성되어야 하는게 아닌지..궁금합니다. 폴더가 일단 생성이 안되구요...맨밑에 이미지 추가한것처럼 helm쪽 파일만 릴리즈파일 체크아웃통해 받아진것 같아요.
또한가지는 [소스빌드] 스텝인데 echo로만 그냥 찍는거지 실제 빌드하는거 아니죠?
체크아웃자체도 안받아져서 빌드도 안될것 같구요.
마지막으로 [컨테이너빌드] cp부분도 echo로 찍는부분이지 실제 copy명령어를 실행하는것도 아니고..
그런데 docker build 명령어는 실제로 하는데...
위에서 빌드도 문자열만 찍는거고 ...소스도 안받아졌는데 어떻게 docker build는 또 실제로 할수잇는지도 궁금합니다.
stage('소스파일 체크아웃') {
steps {
// 소스코드를 가져올 Github 주소
git branch: 'main', url: 'https://inf.run/M45Zm'
}
}
stage('소스 빌드') {
steps {
// 755권한 필요 (윈도우에서 Git으로 소스 업로드시 권한은 644)
echo "chmod +x ./gradlew"
echo "gradle clean build"
}
}
stage('릴리즈파일 체크아웃') {
steps {
checkout scmGit(branches: [[name: '*/main']],
extensions: [[$class: 'SparseCheckoutPaths',
sparseCheckoutPaths: [[path: "/${CLASS_NUM}"]]]],
userRemoteConfigs: [[url: "${GITHUB_URL}"]])
}
}
stage('컨테이너 빌드') {
steps {
// jar 파일 복사
echo "cp ./build/libs/app-0.0.1-SNAPSHOT.jar ./${CLASS_NUM}/build/docker/app-0.0.1-SNAPSHOT.jar"
// 도커 빌드
echo "docker build -t {CLASS_NUM}/build/docker"
}
}
답변 2
0
일단 말씀하신 내용 모두 정상적인 상태입니다.
캡쳐한 내용대로만 파일이 존재하는 게 맞고, echo를 찍은 이유와 함께 실습 영상에서 설명을 드렸는데, 내용을 다시 한번 잘 들어 봐주시겠어요?
0
안녕하세요, 인프런 AI 인턴입니다.
odark님께서 관련 문제를 겪고 계신 것에 대해, 비슷한 상황을 해결할 수 있는 기존의 답변을 소개해드리겠습니다. Jenkins에서 소스 체크아웃이 안 이루어지거나 단계별로 실행되지 않는 문제는 Jenkinsfile에서 설정된 명령어들이 실질적으로 실행되지 않는 경우에 주로 발생합니다.
git
명령어로 소스를 체크아웃하였을 때 파일이나 폴더가 생성되지 않는다면, URL이 잘못되었거나 네트워크 문제로 인해 소스코드를 가져오지 못할 수 있습니다.git
명령이 어떻게 실행되었는지, 에러 메시지가 있었는지를 확인해봐야 합니다. 또한, Git URL이 정확한지, Jenkins가 해당 경로에 접근할 수 있는지 점검해야 합니다.echo
로 출력되는 부분만 명시하셨습니다. 실질적으로 gradlew
명령어들을 실행하려면 sh
명령어를 통해 실행해야 합니다.
stage('소스 빌드') {
steps {
sh "chmod +x ./gradlew"
sh "./gradlew clean build"
}
}
sparseCheckoutPaths
설정이 잘못되었거나, 올바른 파일 경로를 지정하지 않으면 파일이 정상적으로 체크아웃 되지 않을 수 있습니다.cp
와 docker build
명령어는 실제 실행되지 않고 문자열이 출력되는 형태입니다. 실제로 파일 복사와 도커 빌드를 실행하려면 sh
명령어가 필요합니다.
stage('컨테이너 빌드') {
steps {
sh "cp ./build/libs/app-0.0.1-SNAPSHOT.jar ./${CLASS_NUM}/build/docker/app-0.0.1-SNAPSHOT.jar"
sh "docker build -t ${DOCKERHUB_USERNAME}/api-tester:v1.0.0 ./${CLASS_NUM}/build/docker"
}
}
이 외에도 추가적으로 도움이 될 유사한 질문으로부터 해결 방법을 확인할 수 있는 링크를 드립니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아..제가 성급했습니다. ..감사합니다!!!