Spring boot, Jenkins, Docker, EC2 를 모두 사용해서 배포하는 방법을 순차적으로 정리했다.
EC2 인스턴스 생성
EC2 기본개념 게시글에서 5번 항목을 참조하여 EC2 서버를 연결한다. 이 때 EC2 인스턴스의 보안 그룹 인바인드 규칙에 HTTP, 8080, SSH 등을 아래와 같은 형태로 추가해 서버를 생성한다.
EC2에 Jenkins & Docker 설치
내 PC의 bash에서는 apt-get이 작동하지 않아 yeju님의 CTIP 환경 구축 - 3. AWS EC2에 Jenkins & Docker 설치 게시글을 참고하여 설치하였다.
설치 전 패키지 업데이트 : sudo yum update -y
JAVA 설치 : sudo yum install java-1.8.0-openjdk-devel.x86_64 -y
git 설치 : sudo yum install git -y
Docker 설치 : sudo yum install docker -y
Docker 서비스 실행 : sudo service docker start
Jenkins 설치 :
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
sudo yum install jenkins -y
Jenkins 서비스 실행 : sudo service jenkins start
이후 http://Personal IP 주소:8080 으로 접속하고,
sudo cat /var/lib/jenkins/secrets/initialAdminPassword 를 입력하여 비밀번호를 확인 한 후
이 정보를 바탕으로 Jenkins 서버에 접속하여 초기 id 비밀번호를 설정한다.
Jenkins Setting
jenkins에서 sudo 사용을 위한 권한 설정
git bash에서 sudo vi /etc/sudoers 입력 후 아래 사진에 해당하는 부분을 사진처럼 편집
Jenkins create item
소스 코드 관리에 해당하는 github의 주소를 기입한다.
그 후 credentials에 add > Jenkins 버튼을 눌러 아래 사진과 같이 github 정보를 입력한다.
이 때 password는 github access token을 사용한다.
build step을 Execute shell로 설정한 후 command에 ./gradlew clean build를 입력한다.