Jenkins 빌드 파일 다른 서버에 배포(maven,war)
ssh server 설치및 설정
docker ssh server 설치 및 설정
1.docker ssh image 다운로드 docker pull edowon0623/docker 리눅스 기반 서버에 docker와 ssh서버가 설치되어있는 이미지를 다운받아줍니다. 2. docker 실행 docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:80
blog.yougeun.com
1.SSH 플러그인 설치
Publish over SSH plugin을 Jenkins에 설치해줍니다.
2. jenkins 관리 -> System Configration -> System -> Publish over SSH 추가
Name: docker-host
HostName:[local_IP]
username:root
Remote Directory:.
password:P@assword
port:10022
를 입력 후 하단의 Test Configuratuion을 눌러서 success가 뜨는지 확인합니다.
3. Jenkins설정
빌드 유발에서 Poll SCM 설정을 꺼주고 빌드후 조치에서 Deplay war/ear to a container를 삭제 하고 빌드후 조치 Send build artifacts over SSH 추가하고 빌드합니다.
4. 배포확인
Jenkins_maven.war파일이 전달된 것을 볼 수 있다.
5. Docker file 생성
vi 명령어를 통해서 Dockerfile을 만들고 FROM에 프로젝트에 알맞는 tomcat버전을 쓰고 COPY 명령어를 통해 /usr/local/tomcat/webapps에 war파일을 복사해줍니다.
6.image 생성
docker build -t docker-server -f Dockerfile .
위 명령어를 통해 Dockerfile을 기준으로 image 이름이 docker-server인 이미지를 생성합니다.
7. Container 구동
docker run -p 8080:8080 --name maven_project docker-server:latest
위의 명령어를 통해 docker container를 구동시키고 주소창에 localhost:8081/[war파일 이름]을 접속하면 배포가 완료된 것을 볼 수 있다.
8. Jenkins를 통한 5~7 자동화
1. 5~7 container,image,war 파일 삭제
docker stop maven_project : container 중지
docker rm maven_project : container 삭제
docker rmi Jenkins_project:latest :이미지 삭제
rm -rm Jenkins_project.war : war파일 삭제
위 명령어를 통해서 5~7에서 했던 container와 이미지 ,war파일을 삭제해줍니다.
2.Jenkins 설정
docker build -t docker-server -f Dockerfile .;
docker run -d -p 8080:8080 --name maven_project docker-server:latest
3번의 빌드 후 조치 부분에서 Exec command에 위의 명령어를 추가해주고 빌드합니다.
3.확인
빌드에 성공하면 ssh서버에 접속하여 구동되고 있는 컨테이너를 확인합니다.