1. 젠킨스 파이프라인 설정Dashboard > New Item > PipelineGithub project에 webhook 등록한 repository URL 입력Build Triggers > Github hook trigger for GITscm polling 체크 파이프라인 크게 3단계로 나눌 수 있다.Git Clone 단계Git 저장소에서 소스 코드를 가져오는 단계branch 가져올 브랜치를 지정credentialsId 사용할 Git 자격 증명의 ID를 지정한다. 사전에 Jenkins에서 설정된 것url 가져올 Git 저장소의 URL을 지정Build 단계Gradle을 사용하여 소스 코드를 빌드하는 단계./gradlew clean build 명령을 실행하여 Gradle 빌드를 수행Deploy 단계s..
1. 젠킨스 플러그인 설치 1)gradle로 빌드하기위해 gradle 관련 플러그인 설치Dashboard > Manage Jenkins > Tools Gradle Installations > Version 선택 하고 Save 2) SSH agent 플러그인 설치SSH를 통해 EC2 인스턴스에 접근할 것이다. 이를 위해 SSH agent를 설치해야한다.Dashboard > Manage Jenkins > Plugins > Available pluginsAvailable plugins > SSH agent 검색 > 설치 설치가 완료되었다.2. Repository WebHook 등록사용 githubhttps://github.com/seongjju/opensource GitHub - seongjju/opensou..
1. Jenkins 설정EC2의 퍼블릭 IP를 통해 외부에서 접속한다. $ sudo docker logs jenkins이때 jenkins에 로그가 출력되고, 이를 통해 젠킨스를 최초로 설치하고 실행할 때 필요한 initial admin password를 확인 할 수 있다.또는 직접 젠킨스 컨테이너에 접속하여, 파일의 내용을 조회할 수 있다.$ sudo docker exec -it jenkins /bin/bash$ cat /var/jenkins_home/secrets/initialAdminPassword install suggested plugins를 누른다.평균적으로 10분이내에 완료된다.이후 admin 계정으로 로그인하기 위한 정보를 입력해준다.원격 주소로 Jenkins URL이 설정된것을 확인 할 수..
1. Architecture설명1 GitHub에 코드 변경 사항 발생2 GitHub에 코드 변경 사항이 감지되면, 설정된 GitHub Webhook이 Jenkins에게 HTTP POST 요청3 Jenkins에서 변경사항 감지하고 CI / CD 파이프라인 실행4 빌드 & 배포5 소프트웨어를 빌드하고 테스트한 후, Docker 이미지로 패키징하고 EC2 인스턴스에 배포한다. 먼저 기존에 가지고 있던 프로젝트 파일이 빌드가 잘되는지 로컬에서 확인한다. 2. EC2 세팅EC2에서 인스턴스를 만들어준다. 이해의 편의성과 사용 후 ec2를 내릴거기에 ip를 가리지 않고 설명하겠다.본인은 Ubuntu 프리티어로 만들었다. 탄력적 IP로 접속을 위한 IP를 생성한다.만든 ec2와 연결해준다.ec2생성시 사용한 .pe..
먼저 build.gradle에 들어가서 dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.jasypt:jasypt:1.9.3' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:s..
프로젝트를 진행하면서 여러 repository를 만들다 보니, 어떤 repository에 어노테이션을 빼먹고 진행했는데, 잘 돌아갔다. 찾아보니 @Repository 어노테이션을 사용하는 것이 일반적이지만 최신 버전의 Spring에서는 @Repository 어노테이션을 생략해도 작동할 수 있다. 따라서 @Repository 어노테이션을 생략해도 되지만, 코드의 가독성을 높이고 명시적으로 해당 클래스가 Repository 역할을 수행한다는 것을 나타내기 위해 사용하는 것이 좋다는 것을 알게되었다.
데모데이 하루전에 db를 밀고 ddl-auto: create 를 했는데, 한개의 테이블(Member)만이 생성이 안되었다. 쿼리를 잘 살펴보니 2024-02-18T23:47:20.726+09:00 WARN 8511 --- [ main] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL " create table member ( age integer, creat_time datetime(6), member_id bigint not null auto_increment, token_expiration_time datetime(6), update_tim..