새로운 item

ok 후 설정 들어가서 깃허브 레포지토리 주소 입력

옆에 소스 코드 관리 눌러서
url주소에 레포지토리주소.git과 master로 된 내용을 main으로 바꾼다

밑에 build steps를 누르고 invoke gradle script를 누른다

버전을 아까 저장해놨던 7.6.1로 선택하고
tasks에 clean build로 쓰고 저장

저장 후
대시보드에서 프로젝트를 누르고 지금 빌드를 누르고 console output을 눌러 확인한다


빌드가 성공하면
/var/lib/jenkins/workspace/2121-source-build/build/libs 위치에 jar파일이 만들어지게 된다.

대시보드에 가서 새로운 아이템 생성



밑에 additional Behaviours에서 sparse checkout paths를 누른다

path에 2121/build/docker를 입력해 준다.
위에 입력한 깃 repo주소에서 여기 path에 입력한 파일들만 받겠다는 뜻

밑에 빌드 스탭스에 들어가서 익스큐트 셀을 누른다.

내용을 입력해 주고 저장

# jar 파일 복사
cp /var/lib/jenkins/workspace/2121-source-build/build/libs/app-0.0.1-SNAPSHOT.jar ./2121/build/docker/app-0.0.1-SNAPSHOT.jar
# 다른 폴더에 jar 파일 복사
# 도커 빌드
#seotg => 내 도커허브 id
docker build -t seotg/api-tester:v1.0.0 ./2121/build/docker
# -t 는 태그 seotg/api-tester:v1.0.0 이 이름으로 이미지가 만들어지고 ./2121/build/docker 도커파일 위치
docker push seotg/api-tester:v1.0.0
# 내 도커 허브에 업로드
저장 후 지금 빌드를 눌러 빌드를 시켜주고 로그를 확인해보면 잘 되는데

내 도커 허브에 들어가서 확인해보면 잘 올라가져 있다.

cat /var/lib/jenkins/workspace/2121-container-build/2121/build/docker/Dockerfile 명령어를 통해 도커 내용을 확인해보면
FROM openjdk:17
COPY ./app-0.0.1-SNAPSHOT.jar /usr/src/myapp/app.jar
ENTRYPOINT ["java", "-Dspring.profiles.active=${spring_profiles_active}", "-Dapplication.role=${application_role}", "-Dpostgresql.filepath=${postgresql_filepath}", "-jar", "/usr/src/myapp/app.jar"]
EXPOSE 8080
WORKDIR /usr/src/myapp
# 설명
# 도커허브에서 openjdk 17버전기반 이미지 다운
FROM openjdk:17
#jar파일을 컨테이너 안에 /usr/src/myapp/ 이 위치에 app.jar 이름 바꿔서 복사
COPY ./app-0.0.1-SNAPSHOT.jar /usr/src/myapp/app.jar
# 자바 환경변수 넣어주고 방금 실행한 jar파일 실행
ENTRYPOINT ["java", "-Dspring.profiles.active=${spring_profiles_active}", "-Dapplication.role=${application_role}", "-Dpostgresql.filepath=${postgresql_filepath}", "-jar", "/usr/src/myapp/app.jar"]
# 컨테이너 포트 8080
EXPOSE 8080
# 컨테이너 홈 디렉토리 경로지정
WORKDIR /usr/src/myapp
새로운 아이템 → 이름 적고 밑에 copy from에서 2121-container-build 넣은 후 저장

설정 값이 저장되어 있는데 밑에 sparse checkout paths에서 path값을 변경한다.
2121/build/docker → 2121/deploy/k8s

밑에 esecute shell 부분을 수정 후 저장
kubectl apply -f ./2121/deploy/k8s/namespace.yaml
kubectl apply -f ./2121/deploy/k8s/pv.yaml
kubectl apply -f ./2121/deploy/k8s/pvc.yaml
kubectl apply -f ./2121/deploy/k8s/configmap.yaml
kubectl apply -f ./2121/deploy/k8s/secret.yaml
kubectl apply -f ./2121/deploy/k8s/service.yaml
kubectl apply -f ./2121/deploy/k8s/hpa.yaml
kubectl apply -f ./2121/deploy/k8s/deployment.yaml

빌드를 하고 성공이 되면
쿠버네티스 대시보드에 들어가 확인해보면

디플로이먼트, 서비스, 컨피그맵,시크릿 등 잘 만들어져 있다.