일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Spring Boot
- spring security 로그인
- react 심플캡차
- error
- build
- react 캡차
- Spring Security
- 스프링
- git
- react captcha
- maven
- react 자동입력방지
- REACT
- spring error
- CI
- 스프링 시큐리티
- 에러
- 깃
- ChatGPT
- 젠킨스
- react simple captcha
- react 상태
- Docker
- jpa
- Security 로그인
- myBatis
- 리액트 심플캡차
- 리액트 캡차
- 스프링 시큐리티 로그인
- SpringBoot
- Today
- Total
I can do it(Feat. DEV)
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[4편] 본문
2024.09.12 - [개발자 모드/응용] - [CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[3편]
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[3편]
2024.09.12 - [개발자 모드/응용] - [CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[2편] [CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[2편]2024.09.11 - [개발자 모드/응용] - [CI/CD] Docker로 Jenkins
precious-value.tistory.com
저번 편까지 CI를 마무리했고, 이제는 대망의 CD만 남았음!!
말씀드렸다시피 필자는 도커 컨테이너로 배포를 하지 않음!!
장고 백엔드 서버에 접속한 뒤 GIT을 통해 소스를 업데이트하여 배포를 함!!
그렇기 때문에 자동적 배포를 진행하기 위해 젠킨스에서 Job을 만들어주어야 함!!😋
그럼 바로 시작해 보겠음!! 🚌
[4편] 젠킨스에서 배포를 담당할 Job 설정
먼저 젠킨스 서버에 접속한 뒤 대시보드에서 New Item을 선택하여 Freestyle Project를 생성함!!(아이템명은 독자분들 마음대로~)
이후 Job 구성 페이지에서 저번에 한 것처럼 [소스 코드 관리] > git을 선택!!

그리고 배포를 하고 싶은 깃 레포지토리에 접속해서~

해당 버튼으로 레포지토리 URL을 복사해서 넣어주고, 저번 시간에 등록한 [ Credentials]를 선택!
등록을 하지 않았다면 아래 링크에서 등록을 하고 진행하시길!!😄
https://precious-value.tistory.com/58
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[2편]
2024.09.11 - [개발자 모드/응용] - [CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[1편] [CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[1편]평소 CI/CD에 대해서 관심은 있었지만 직접 경험해
precious-value.tistory.com
그리고 [ Branches to build] 탭에 배포를 할 브랜치를 선택해 주면 됨!!(필자는 master 브랜치임!!)

이후 [빌드 유발] 탭에서 [Build after other projects are built]를 선택 > 각자 해당하는 프로젝트 선택!!
필자는 CI Job이 끝난 이후에 CD Job을 진행해야 하기 때문에 이렇게 설정함!!
그리고 [Trigger only if build is stable]을 선택!!(빌드가 성공했을 때 CD를 진행하기 위해서😉)
이제 배포 스크립트를 작성해야 하는데 이 부분은 당연히 배포 환경에 따라 다를 것이므로 참고만 하시는 걸 추천!!😓

[Build Steps] > [Add build step]을 클릭 후 [Execute shell]을 선택!!

ssh username@production-server-ip << 'EOF'
cd ~/review-spot/review_spot_backend/ # 프로젝트 경로로 이동
git pull origin master # 소스 코드 최신화
source venv/bin/activate # 가상 환경 접속
pip install -r requirements.txt # 라이브러리 최신화
python ./manage.py migrate # 마이그레이션 진행
sudo systemctl restart gunicorn # gunicorn 서버 재실행
sudo systemctl restart nginx # nginx 서버 재실행
EOF
이 명령어는 어떤 백엔드 프레임워크를 쓰는지 환경이 어떤 지에 따라 달라진다는 것!!
어려운 명령어는 없다고 생각함!!
ssh username@production-server-ip << 'EOF' ~ EOF : 는 ssh를 통해 배포할 서버에 접속을 하고 ~ 안에 있는 명령어들을 한 번에 실행해 줌!!
EOF(End Of
File)이라고 하며 이러한 방식을 히어 도큐먼트라고 부른다고 함!!
각자의 환경에 맞게 커스텀한 쉘을 추가했다면 저장 버튼 클릭!!
이제 배포가 잘되는지 테스트를 진행해 보고 에러가 났다면 젠킨스의 프로젝트> 콘솔에서 에러를 확인 후 수정하면 됨!!
다음번에는 CI가 완료되면 도커 허브에 이미지를 올리고 도커 컴포즈로 이미지를 가져와 컨테이너를 띄워서 CD를 진행해 웹 서버를 구축하는 방법을 포스팅해보겠음!!👍

다들 고생하셨고, 추석 잘 보내시길!!😄
'개발자 모드 > 응용' 카테고리의 다른 글
[Log] 개발자 감성 저격🎯 터미널 로그에 색 입히는 법(feat. Python) (0) | 2025.04.01 |
---|---|
[Django Silk]로 성능 최적화 및 분석 시작하기! (0) | 2025.03.12 |
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[3편] (2) | 2024.09.12 |
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[2편] (0) | 2024.09.12 |
[CI/CD] Docker로 Jenkins Server 설치 및 실행(Feat. 우분투)[1편] (2) | 2024.09.11 |