[CICD] Jenkins SSH 배포카테고리 없음2023. 10. 2. 21:55
Table of Contents
소스 코드 변경 시 자동 빌드하기
Chron Job: UNIX 기반 OS의 시간 기반 Job Scheduler이다.
아래 Chron Job 기반의 두 가지 방법으로 빌드 트리거 설정을 할 수 있다.
- Build Periodcally: 일정 시간 마다 빌드를 진행한다.
- PollSCM: 일정 시간 마다 검사 후 코드 업데이트 사항(commit)이 있다면 빌드를 진행한다.
Deploy
SSH 설정
- SSH plugin 설치 (Publish Over SSH)
- Jenkins 관리 -> system -> publish over ssh -> ssh sever 추가
Test Configuration을 클릭해서 좌측 하단에 success가 출력되면 성공이다.
Jenkins Project 설정
- maven project -> build -> goals and options => clean compile package
- git repository url 등록
- build 후 조치 = Send build artifacts over SSH
Transfer set: 복사할 실행 파일
Remove prefix: 결과물 이름에 prefix 제거
Remote directory: 저장 경로
Exec command: 빌드 후 실행할 내용
docker build --tag=[이미지 이름] -f [실행할 도커파일명(default=Dockerfile)] .; # . 현재 폴더 ;는 명령어 구분을 위한 세미콜론
docker run -d -p 8080:8080 --name [컨테이너 이름] [이미지 이름]:[버전]
아키텍처
트러블슈팅
위 과정을 진행하면서 Jenkins ssh 설정에서 ip를 인터넷에서 my ip를 검색해서 넣었더니 ssh 접속이 안됐다.
- ifconfig의 en0에 있는 ip로 변경해서 해결
docker 명령어 실행 시 아래와 같은 에러 메세시가 나와서 systemctl 명령으로 docker service를 실행해주었다.
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Reference
@뽀글뽀글 개발자 :: 뽀글뽀글 개발 일지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!