정글에서는 AWS Credit 을 받아 AWS 환경을 구성하고 Jenkins 도 설치했지만
여기서는 Local 환경에 Docker 를 이용하여 Jenkins 를 구성해보려고 한다
정글에서 진행한 CI/CD via Jenkins + Docker
https://helloahram.tistory.com/184
CI/CD via Jenkins + Docker #1
CI/CDCI - Continuous Integration 지속적 통합 CD - Continuous Delivery or Deployment 지속적인 제공 or 배포 CI 목적 - 자동으로 Build/ Test 1. 코드 변경 사항을 주기적으로 빈번하게 Merge 해야 한다 2. 통합을 위한
helloahram.tistory.com
https://helloahram.tistory.com/186
CI/CD via Jenkins #2
Jenkins 설정 Jenkins 를 설치하고 Git Repo 까지 연결했으니 (#1 참고) 이제 설정할 차례 -각오는 했지만 생각보다 설정할 내용들이 많았고 제법 어렵기도 했다 Jenkins 배포 전략 세우기방안1) 빌드 서
helloahram.tistory.com
Docker 설치 및 확인
Docker 공식 홈페이지에서 Docker Desktop 을 설치한다
https://www.docker.com/products/docker-desktop/
Docker Desktop: The #1 Containerization Tool for Developers | Docker
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.
www.docker.com

현재 최신 Engine 버전은 28 라고 하니 업그레이드해준다
https://docs.docker.com/engine/release-notes/28/
Engine v28
Learn about the new features, bug fixes, and breaking changes for Docker Engine
docs.docker.com
Docker Desktop 에서 설정 -> Software Updates 에서 Download Update 해주면 된다


최신 버전으로 업그레이드 완료!
Jenkins 설치
Jenkins 공식 홈페이지에 LTS 와 Weekly 두 가지 옵션이 있는데
Weekly 는 매주 Release 되지만 실험 기능도 포함되어 있어서 불안정할 수 있으니
안정적인 Long-Term Support, LTS 를 설치해준다
docker run -d --name jenkins-lts \
-p 9090:8080 -p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
| 옵션 | 설명 |
| -d | 백그라운드 실행 |
| --name | 컨테이너 이름 설정 (jenkins-lts) |
| -p 9090:8080 | Jenkins 웹 UI 포트 연결 |
| -p 50000:50000 | 에이전트 통신용 포트 연결 |
| -v jenkins_home:/var/jenkins_home | Jenkins 데이터 영속화를 위한 볼륨 설정 |
| jenkins/jenkins:lts | LTS 버전의 Jenkins 이미지 사용 |

Jenkins 접속
http://localhost:9090 으로 접속하면 아래와 같은 화면이 출력된다

저 명령어를 CLI 에 입력하면 Password 가 출력되고, 그 Password 를 Web UI 에 입력하면 된다
docker exec jenkins-lts cat /var/jenkins_home/secrets/initialAdminPassword
Plugin 은 나중에도 설치 가능하니, Install Suggested Plugins 을 선택한다


설치가 다 되면, Admin User 를 생성해주고, Jenkins 에서 사용할 기본 URL 도 설정한다

그러면 Jenkins 설치도 완성!
Jenkins Job 이란
Job == 작업 단위
Jenkins 에서는 빌드, 테스트, 배포 같은 자동으로 실행하고 싶은 작업을 Job 이라는 단위로 관리한다
Job 을 하는 이유는 간단하다
자동으로 하기 위해서
예전에는 사람이 일일이 명령어 입력해서 빌드하고 테스트했지만,
Jenkins Job 을 만들면 버튼 클릭 한 번 또는 Code Push 만으로 자동으로 진행된다
그렇기 때문에 반복되는 작업을 실수 없이, 빠르게, 일관된 방식으로 작업을 실행할 수 있다
Job 종류 예시
Freestyle Job - 가장 기본적인 Job, Shell Script 도 쉽게 실행할 수 있다
Pipeline Job - 코드로 파이프라인을 정의하고 싶을 때 사용한다 (Jenkinsfile 사용)
Multibranch Pipeline - Github 의 각 Branch 마다 자동으로 파이프라인을 구성할 수 있다
Jenkins Job 실행하기
Jenkins 의 첫 접속 화면에서 Create a Job 을 선택한다
Item Name 을 입력해주고, Freestyle Project 을 선택한다
Configure 에서 스크롤을 쭉~~ 내려서 Environment > Build Steps 영역으로 이동하고
Add Build Step > Execute Shell 을 선택한다

Command 를 입력해주고 Save 버튼으로 저장해준다
echo "Hello Jenkins"

Jenkins 메인 화면에서 왼쪽 영역의 [지금 빌드] 버튼을 누르면 방금 설정한 Freestyle Job 이 빌드된다

Build 영역의 #1 을 눌러 콘솔을 확인하면, 아까 입력한 Command 가 정상 실행되었음을 알 수 있다

정리
Jenkins Job 은 반복되는 작업 (빌드, 테스트, 배포 등) 을 자동화하기 위한 기본 단위이다
Freestyle Job 은 Jenkins 에서 가장 기본적인 형태로, 간단한 명령 실행부터 시작할 수 있다
내일은 (시간이 된다면) Github 레포 연동해야지
'TIL > DOCKER' 카테고리의 다른 글
| Jenkins #3 Github Repo 와 Jenkins 연동하기 - 성공 버전 (1) | 2025.07.18 |
|---|---|
| Jenkins #2 Github Repo 와 Jenkins 연동하기 - 실패 버전 (5) | 2025.07.16 |
| 쿠버네티스와 도커, 관계 정리 (0) | 2025.02.03 |
| [NGINX] EC2 Amazon Linux 에 NGINX 설치하기 (0) | 2025.01.12 |
| [AWS] 탄력적 IP 연결 (0) | 2025.01.11 |