Jenkins

    Jenkins Front-End Dockerizing

    👀 Epilogue 앞선 Jenkins로 React 빌드를 진행하였다. 빌드 산출물을 배포하기 위해선 Docker Image로 패키징 해야 한다. Dockerfile을 작성하고 Jenkins로 Dockerizing을 진행해보자! ⚡ Leggo ▪ Nginx 설정 파일 /conf/conf.d/default.conf에 Nginx 설정 파일 필요 server { listen 80; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/ngin..

    Jenkins Front-End React Build

    👀 Epilogue Jenkins로 React 빌드를 해보자 ! ⚡ Leggo ▪ React Build 개발 모드로 프로그램 실행 $ npm start 실제 배포 시 빌드 명령어 $ npm run build 배포 환경에서 사용할 파일들 압축 형태로 제공 index.html 최적화하여 배포 테스트용으로 serve라고 하는 간단한(한 번만 사용하는) 서버를 npm을 통해 설치하는 명령어 npm insatll -g serve npx serve -s build // 한번만 실행 현재 개발 단계에서 [ Front-End → Back-End ] 요청 타겟팅 설정 파일 path check Movie-project/back/src/main/movie-project/src/setProxy.ts webpack을 사용하지 ..

    Jenkins Kubernetes Manifest Deploy

    👀 Epilogue 현재 프로젝트에 적용할 CD 파이프라인 소개 도커 이미지 빌드 도커 이미지 Docker Hub Registry에 Push Kubernetes Deployment Manifest 파일에 도커 이미지 태그 수정 ArgoCD가 수정 사항을 감지하여 새로 Push 된 Docker Image를 가지고 배포를 진행한다. 이로써 GitOps 환경이 구축이 된다. 진짜 역대급으로 힘들었고 시간 많이 잡아먹었던 파이프라인 Stage 왜냐고 물으신다면 이 빌드 숫자를 보아하니..^^ ⚡ Leggo Jenkinsfile environment{ ... gitToken = credentials('github-repo-access-token') } ... stage('Kubernetes Manifest Upd..

    Jenkins Docker Image Push

    👀 Epilogue 험난한 과정을 거친 후 도커 이미지 빌드 파이프라인을 성공하였다 ! 이제는 빌드한 이미지를 가지고 도커 허브 레지스트리에 Push를 해보자 ~ ⚡ Leggo Jenkinsfile ... stage('Docker Image Push'){ steps{ container('docker'){ withDockerRegistry([credentialsId: 'docker-access-key', url: "" ]){ sh "docker push ${dockerHubRegistry}:${currentBuild.number}" sh "docker push ${dockerHubRegistry}:latest" /* Wait Uploading */ sleep 10 sh "docker rmi ${docker..

    Jenkins Back-End Dockerizing

    👀 Epilogue 역시나 험난한 트러블 슈팅기 도커가 없다고 하는 거 같아요.. ⚡ Leggo 플러그인 설치 Docker Docker Pipeline 실패.. uname -a 를 통해 OS 정보 확인 + uname -a Linux default-hp930 5.4.0-99-generic #112-Ubuntu SMP Thu Feb 3 13:50:55 UTC 2022 x86_64 GNU/Linux 도커 설치 스크립트 추가 sudo apt-get update sudo apt-get install docker.io sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker agent pod에서 sudo: not found 문제로 실패 해결책 apt-get update && a..

    Jenkins Back-End Gradle Build

    👀 Epilogue 백엔드 Gradle 빌드 시 매우 많은 트러블 이슈 발생 Gradle 빌드 명령어 이슈.. Test 제외 빌드 명령어 ./gradlew build --exclude-task -test Gradle 빌드 세팅 파일 찾지 못하는 이슈.. Gradle 권한 오류.. etc.. 그중에서 제일 애를 먹었던 이슈를 해결했던 과정을 소개하고자 한다. ⚡ Leggo Jenkinsfile ... stage('Gradle Jar Build'){ steps{ dir('back'){ sh ''' chmod +x gradlew ./gradlew build --exclude-task test ''' } } post{ failure{ echo 'Gradle jar build failure!' } success{..

    Jenkins Webhook 연동

    📌 목표 Github의 Webhook을 구성하고 Jenkins와 연동 후에 Push Event 발생 시 자동으로 빌드가 진행되도록 해보자 ! ▪ Github Webhook 구성 Github Access Token 생성 Github Repository - Setting - Webhooks - Add Webhook Payload URL 젠킨스 URL + /github-webhook/ 외부에서 접근 가능한 도메인으로만 동작 가능 → ngrok 서비스 이용 e.g.) http://jenkins.com/github-webhook/ Content Type application/json ▪ Jenkins Credential 등록 및 관리 Jenkins - Manage Credentials Credential 등록 U..

    Jenkins 환경 설정 및 빌드 테스트

    📌 목표 젠킨스를 설치했으니 필요한 환경설정 구성 및 빌드 테스트를 진행해보고자 한다 ! ⚡ Leggo 필요한 플러그인 설치 및 확인 Kubernetes, GitLab, Webhook.. 웬만한 사전 설정은 Helm 파일을 통해 미리 구성이 된 상태인 것 같아 딱히 만질 것은 보이지 않았다. 일단 하나는 기억하면 좋을 것이 있어 가져와 보았다. # of executors 동시에 배포 가능한 스레드 수를 의미하며 ‘0’은 동시에 여러 배포가 진행되지 않도록 하는 설정이다. 테스트 빌드 스크립트를 작성하여 빌드 잡을 만들어보자 Pipeline을 선택해준다. FreeStyle : Jenkins 자체 GUI를 활용해서 Flow 정의 장점 : 쉽게 접근 가능 단점 : 제한적인 커스터마이징 Pipeline : 코드..

    Jenkins Helm 설치

    📌 목표 Helm을 사용해서 Jenkins를 Kubernetes 클러스터 환경에 구축해보자 ! ⚡ Leggo Helm 설치 for Mac OS $ brew install helm helm repo 추가하기 $ helm repo add jenkins $ helm repo update jenkins 설정 파일인 values.yaml 받기 $ helm show values jenkins/jenkins > jenkins-values.yaml jenkins namespace 생성 후 jenkins chart 설치 # Helm 3 $ helm install [RELEASE_NAME] jenkins/jenkins [flags] $ kubectl create namespace jenkins $ helm install ..