티스토리 뷰
Jenkins(Windows) 5 Docker container에 배포하기(Exec command)
svdjcuwg4638 2023. 6. 20. 15:58새 item을 추가하여 4번글에서 사용한 Third-Project를 이용해서 My-Docker-Project라고 생성해주겠습니다.
설정
빌드 유발에서 Poll SCM을 체크해제 해주고
빌드 후 조치에 Delpoy war/jar to a container을 x를 눌러 제거해줍니다
그 후 Send build artifacts over SSH로 추가해줍니다.
위 까지만 작성하고 저장한뒤 build를 하게되면 .war파일이 잘 들어와있는지 확인해봅시다.
ssh서버에 올렸으니 ssh서버에 접속 해주셔야하고
ls -l 명령으로 파일을 확인하여 hello-world.war파일이 있는지 확인
Dockerfile 수정
Dockerfile의 내용을 출력해보면 밑과는 다른 내용이 있을겁니다.
tomcat이 latest라면 9.0으로 수정 (최신버전은 10이니)
COPY에도 우리가 배포중인 ./hello-world.war로 적어줍시다(기본값 ./webapp.war)
vi Dockerfile을 입력하여 수정해주셔야합니다 위와같이
i는 입력모드 (a는 커서위치의 뒤에서 입력하게 해줍니다)
입력이 완료되었다면 esc하여 명령모드로 돌아와 :wq! 라고 입력하고 나오시면 됩니다(저장하고 나오기)
cat Dockerfile로 잘 수정되었는지 한번더 확인하고
ssh에서 build 해보기
docker build -t docker-server -f Dockerfile .
image다운완료후 확인해보기
실행
docker run -p 8080:8080 --name mytomcat docker-server:latest
동작 원리
pc에서 ssh내부의 tomcat로 바로 갈수 없어 8080이라는 포트를 이용하여 접근하게 되는데
pc에서는 왜 8081일까?
ssh접속하지 않은 상태인 cmd에서 docker ps를 입력하게 되면 포트번호를 확인 할 수 있다.
8081로 접근하면 8080으로 보내주겠다하여 우리가 ssh내부의 8080포트로 접속이 가능하게 되는것이다.
실행을 하게되면 톰캣이 돌아가게되며
위와같은 화면이 보이게된다 이제 localhost:8080/hello.world로 접속해보자
접속했을때 배포했던 프로젝트가 잘 나온다면 성공이다.
Build와 Run 자동실행 설정
지금은 ssh서버에서 우리가 build와 run을 작성하여 사용했지만 이제 jenkins에서 만들때 커맨드를 입력하여 알아서 빌드와 실행이 되도록 설정해보자.
방금 만든 My-Docker-Project 아이탬의 구성으로 가보자
빌드 후 조치 - 고급 - Transfers
command를 보면 build와 run의 명령이 적혀있다 이제 빌드를 하게되면 알아서 커맨드가 실행이 될것이다.
실행전 주의사항
ssh안에 image와 container를 제거해주셔야합니다
우선 실행중인 container을 제거하는법
실행중이지 않는 container까지 보고싶다면 docker ps -a
id를 복사해서
docker stop (id)
정지가 되었다면
docker rm (id)
위까지 하였다면 container까진 삭제가 완료되었고
image를 삭제하기
docker images로 이미지 리스트 출력
docker rmi (iamge id) 입력해서 삭제해주기
최종 확인
docker images
docker ps -a
둘다 아무런 데이터 출력이 없다면 말끔히 잘 지운것입니다.
이제 빌드를 해봅시다
빌드한뒤 아까와같이 localhost:8080/hello-world접속하게되면 우리가 배포한 파일의 내용이 잘 보인다면 성공이다.
여기서의 문제는 같은 이름의 파일이 들어가면 오류가 나는것이다 다음에는 이것을 해결해보도록 하자.
'CI CD > JenKins' 카테고리의 다른 글
Jenkins(Windows) 7 docker ansible 설치 실행(ncurses) (0) | 2023.06.20 |
---|---|
Jenkins(Windows) 6 iac개요 Ansible의 이해 (0) | 2023.06.20 |
Jenkins(Windows) 5 SSH + Docker VM(컨테이너)사용하기 (0) | 2023.06.20 |
Jenkins(Windows) 4 pollSCM 설정하기 commit에따른 업데이트 (0) | 2023.06.20 |
Jenkins(Windows) 3 Tomcat연동 (0) | 2023.06.19 |