NAS Docker로 Node 컨테이너 실행 및 Jenkins 자동빌드&배포

min K·2022년 7월 16일
0

1. NAS Docker 실행 및 Node 이미지 다운로드


node 이미지를 원하는 버전으로 설치

2. Node 이미지로 생성할 컨테이너를 설정

2.1. 컨테이너 이름 입력 및 고급설정 화면으로 진입

2.2. 볼륨 탭으로 이동 및 폴더 추가


시리즈1의 3.2.에서 설정했던 Jenkins 컨테이너의 파일/폴더(docker/jenkins/jenkins-data)하위의 workspace 폴더를
Node 컨테이너의 파일/폴더 경로로 설정(docker/jenkins/jenkins-data/workspace)
=> Jenkins에 연동된 Github의 특정 Repository Branch 코드를 Node 컨테이너가 참조하기 위해

마운트 경로는 변경하지 않고 위와 같이 그대로 작성(/home/node/app)

2.3. 포트 설정


원하는 포트를 입력후 적용 및 컨테이너 생성 완료.

2.4. 포트포워딩

KT공유기 포트포워딩을 아래와같이 설정함
외부에서 8083 포트로 Node Server 접근

3. NAS Node 컨테이너 실행

3.1. Node 컨테이너의 내부 폴더 내용 확인

해당 컨테이너 더블클릭>터미널 탭 진입>생성
bash 항목이 추가되면 터미널 창에서 아래와같은 경로로 이동

cd home/node/app 

2.2. 에서 설정했던 docker/jenkins/jenkins-data/workspace에 존재하는 파일 내용들을 확인할 수 있음.(이 경로에 Github의 설정된 Repository 특정 Branch 최신 코드가 존재)

3.2. nodemon 설치

cd home/node/app
npm install -g nodemon

Node 컨테이너의 터미널 창에서 home/node/app 경로로 이동하여 글로벌 옵션으로 nodemon을 설치함.
필자의 경우 toi-nodejs-server 라는 폴더안에 Github와 연동된 nodejs server 최신 코드가 존재하고 해당 코드를 nodemon으로 실행함.

최종적으로 아래와 같은 순서로 변경된 nodejs 코드가 실시간으로 반영됨

  • Github의 특정 Repository(toi-nodejs-server) Branch에(main) 새로운 코드 commit
  • Github webhook기능을 통해 Jenkins로 push 알림
  • Jenkins가 해당 Branch 코드 Fetch 및 Build 수행(NAS docker/jenkins/jenkins-data/workspace/toi-nodejs-server 폴더에 최신코드 존재)
  • NAS node 컨테이너가 nodemon으로 구동중이며 변경된 코드가 자동으로 반영됨(docker/jenkins/jenkins-data/workspace/toi-nodejs-server 폴더를 참조하고 있음)

0개의 댓글