본문 바로가기

로컬 환경 구성/로컬 개발환경 구성

3. Poll SCM 활용 코드 변경 시 자동빌드 및 ssh를 활용한 다른 서버로 복사하기

728x90
반응형

# PollSCM을 활용한 자동빌드

- 아래와 같이 구성을 변경한다.

# 비주얼 스튜디오에서 소스코드 수정 후 자동빌드 되는지 확인하기

- 코드 추가하기

<h2>Poll SCM 테스트코드 입니다.</h2>

- vs code 실행

cmd 화면에서 code . 를 실행시키면 vs 코드가 현재 cmd 폴더의 정보를 불러와 실행한다.

- git 반영하기

변경한 폴더로 이동하기, C:\apache-tomcat-9.0.74\webapps\hello-world\WEB-INF\views

git add, commit, push를 하여 변경한 코드를 반영한다.

반영이 정상적으로 되면 poll scm에서 변경된 내역을 읽고 자동으로 반영을 수행한다.

https://may9noy.tistory.com/135

 

Github 업로드 방법

1. 깃 저장 폴더로 이동 → git init 2. 파일 추가 → git add . 3. git commit -m "처음 저장소에 올림" 4. git branch - M main # 존재 하고 있다고 나옴, 실행 안해도 됨. 5. git remote add origin https://github.com/Nanninggu/gi

may9noy.tistory.com

# ssh를 이용한 다른 서버로 이미지를 복사

1. ssh 플러그인 설치

젠킨스 설치가능한 라이브러리에서 Publish Over SSH 를 설치

jenkins 관리 → 시스템 설정으로 이동하면 아래와 같이 Publish Over SSH를 설정할 수 있는 항목이 활성화 되어 있다.

2. vm 서버를 생성 후 위에서 설정한 ssh를 이용하여 이미지를 전달

- vm 서버를 docker를 활용하여 생성

이건 시간이 없으니 나중에 생성하도록하고, 이미 생성되어 있는 이미지를 가져와 실행하자.

- 이미지를 가져와 ssh까지 접속하기

sudo docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup [id]/docker:latest /usr/sbin/init

- 접속하기

ssh root@localhost -p 10022

- 접속 완료, docker 이미지로 생성된 또다른 가상서버라고 생각하면 쉽다.

[root@81d4949291b4 ~]# pwd
/root
[root@81d4949291b4 ~]#

- jenkins설정으로 이동하여 ssh 서버 정보를 입력 후 추가한다.

여기에서 Hostname IP 정보는 자신의 PC의 local ip address 이다.

- 추가 설정은 아래와 같다.

- 위와 같이 설정 후 jenkins에서 test connection을 수행하면 아래와 같이 정상적으로 접속이 되었다고 나온다.

3. 실제 war 파일을 ssh를 활용하여 다른 서버로 전달하기

- third-project에서 아래의 ssh 옵션만 추가하면 된다.

- 실제로 빌드 후 war 파일이 해당 vm 서버로 이동 되었는지 확인한다.

이동된 war 파일을 확인할 수 있다.

[root@81d4949291b4 ~]# ls -l
total 7856
-rw-r--r-- 1 root root     129 Sep 20  2022 Dockerfile
-rw------- 1 root root    2361 Sep 15  2021 anaconda-ks.cfg
-rw-r--r-- 1 root root     608 Sep 15  2021 anaconda-post.log
-rw-r--r-- 1 root root 8025961 May  8 07:42 hello-world.war
-rw------- 1 root root    2059 Sep 15  2021 original-ks.cfg
[root@81d4949291b4 ~]#

- war 파일이 존재하는 vm 컨테이너에서 docker 빌드 수행하기

일단 Dockerfile의 내용을 보면 아래와 같다.

FROM tomcat:9.0

COPY ./hello-world.war /usr/local/tomcat/webapps

- 위의 내용을 보면 매우 간단한데, tomcat9.0이미지를 기본으로 hello-word.war 파일을 /usr/local/tomcat/webapps로 COPY 한다는 내용으로 이해하면 된다.

- 빌드 명령어는 아래와 같다.

docker build --tag docker-server -f Dockerfile .

- 빌드가 완료된 후 image를 조회하면 아래와 같다.

[root@81d4949291b4 ~]# docker images
REPOSITORY      TAG       IMAGE ID       CREATED         SIZE
docker-server   latest    97999039c5bd   4 minutes ago   484MB
tomcat          9.0       3f55087df9b4   3 days ago      476MB

- 빌드된 이미지를 실행해보자.

실행 명령어는 아래와 같다.

docker run --privileged  -p 8080:8080 --name mytomcat docker-server:latest

- 그리고 local 환경에서 실행한 8081 포트로 접속을 하면 아래와 같은 결과물을 얻을 수 있다.

localhost:8081

localhost:8081/hello-world

4. Exec 커맨드를 활용한 빌드 수행

- 프로젝트 설정에서 빌드 후 조치를 보면 아래와 같이 Exec command를 입력할 수 있다.

 Exec command의 내용을 보면 아래와 같다.

빌드 후 실행해야 하는 코드가 있다면 Exec 커맨드를 통해 적용 할 수 있다.

docker build --tag=cicd-project -f Dockerfile .;
docker run -p 8080:8080 --name mytomcat cicd-project:latest

- 끝 -

728x90
반응형