![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/roxhu/btszK8qrszH/F3pvTKhekiOPLEAHoQbjDK/img.png)
Nginx 무중단 배포 System Architecture . Install Nginx # 도커 이미지 가져오기 $ docker pull nginx # nginx 서버 기동 $ docker run -itd -p 80:80 -v /home/ec2-user/app/nginx:/usr/share/nginx/conf --restart=always --name nginx -u root nginx # 가동 서비스 확인 $ docker ps -itd i: t 옵션과 같이 사용. 표준입력 활성화. 컨테이너와 연결되어있지 않더라도 표준입력 유지 t: i 옵션과 같이 사용. TTY 모드로 사용하며 bash 사용을 위해 반드시 필요 d: 컨테이너를 백그라운드로 실행. 실행시킨 뒤 docker ps 명령어로 컨테이너 실행 확..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mqv76/btszLwcf3sp/b43QTqkkZsmKi0Zs4L0d11/img.png)
Docker & Jenkins 배포 자동화 구축 System Architecture . Install Docker # Install $ sudo yum update -y # 인스턴스에 있는 패키지 업데이트 $ sudo yum install -y docker # docker 설치 $ docker -v # 버전 확인 # Setting $ sudo systemctl enable docker.service # 재부팅 시 docker 자동 실행 설정 # Start $ sudo systemctl start docker.service # docker 서비스 실행 $ systemctl status docker.service # docker 서비스 상태 확인 . Install Jenkins docker search, p..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/drYlif/btsmPHlkv7L/0clljqDkXJukdgJdMq7lqK/img.png)
Jenkins REST API in JAVA 특정 시기마다 대략 20개 정도의 배치를 Jenkins 에서 수동 재기동해야 하는 일이 있다. 가끔씩? 종종? sometimes.. 있는 일이긴 하지만 너무나 귀찮은 일이다. 한 번의 어떠한 동작으로 이 귀찮은 일을 처리할 수 있는 방법을 떠올리다 Jenkins API 를 활용해 보자는 생각이 들었다. . 이제 하나의 API 호출만으로 20개 정도의 배치가 Jenkins 에서 실행되도록 해보자. 참고로, jenkins-rest 라이브러리를 활용할 수도 있지만 REST API 호출을 적용해볼 예정이다. API Token REST API 사용을 위해 먼저 사용자 API Token 이 필요하다. 아래 경로에서 토큰을 추가할 수 있다. 설정 경로 Jenkins 메인 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/df126q/btsmJg0KYBi/82yR0KrPKaK289P1MSh1S0/img.png)
Spring Batch & Jenkins 구동 방식 개선 현재 실무에서 스프링 배치의 구동 방식이 아래와 같다 Deploy Tool 배치 프로젝트 특정 브랜치의 jar 파일을 배치 서버에 배포 Jenkins Build periodically - Schedule 설정 Execute shell 을 통한 배치 실행 쉘에는 파라미터, 프로파일 설정과 jar 파일로 배치 잡을 실행하는 커멘드가 포함 현상 현재 구동 방식에서는 한 가지(한 가지가 아닐 수도 있지만..) 문제가 있었다. . jar 파일이 배포되는 사이 배치 잡이 실행되거나, 배치 잡이 실행되는 사이 jar 파일이 배포되면 Class 정보를 찾을 수 없다는 예외(java.lang.NoClassDefFoundError, java.lang.ClassNot..