Study/Udemy - Jenkins 자동화

Jenkins로 NodeJs 애플리케이션 Docker 배포

코딩콩 2023. 8. 7. 00:07

* 아래 강의 학습 중📚

Udemy - DevOps 학습: 파이프라인 및 Docker를 이용한 Jenkins 와의 CI/CD

 

환경

jenkins 2.401.3

 

TODO

Jenkins로 NodeJS 애플리케이션 도커 이미지화 해서 도커 허브에 올리기

 

Jenkins에 Docker 플러그인 설치

docker 이미지 생성과 배포를 위한 플러그인

 

 

새로운 jenkins docker 띄우기

강사 제공 새로운 젠킨스 도커 -> https://github.com/wardviaene/jenkins-docker

Dockerfile

FROM jenkins/jenkins:lts
USER root

RUN mkdir -p /tmp/download && \
 curl -L https://download.docker.com/linux/static/stable/x86_64/docker-18.03.1-ce.tgz | tar -xz -C /tmp/download && \
 rm -rf /tmp/download/docker/dockerd && \
 mv /tmp/download/docker/docker* /usr/local/bin/ && \
 rm -rf /tmp/download && \
 groupadd -g 999 docker && \
 usermod -aG staff,docker jenkins

USER jenkins

jenkins 컨테이너 안에 도커 클라이트를 설치하고 docker 그룹을 추가하겠다는 내용의 파일

 

# 강사 제공 jenkins docker pull
git clone https://github.com/wardviaene/jenkins-docker.git
cd jenkins-docker
docker build -t jenkins-docker .

# 기존 젠킨스 중지
docker stop jenkins
docker rm jenkins

# 젠킨스 도커 실행
docker run -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock -d --name jenkins jenkins-docker

기존 젠킨스 컨테이너와 다른 점은 jenkins 컨테이너 안에 도커 클라이언트를 설치해서 우분투 서버에서 실행되는 도커와 통신이 가능한 도커가 되는 것이다.

 

따라서 jenkins shell에서 docker ps를 하면 지금 우분투 서버에서 실행 중인 jenkins docker가 실행 중인 것으로 나온다. (신기하네~)

이부분 부연설명 -> https://velog.io/@donggu/%EB%8F%84%EC%BB%A4-Docker-in-Docker

 

job에 docker 배포 추가

build step

registry credential에 username/pw 추가했다.

 

배포 완료 ^_____^

 

 

우분투 서버에서 Docker pull 받아서 실행해보기

docker pull {사용자이름}/docker-nodejs-demo
docker run -p 3000:3000 -d --name my-nodejs-app {사용자이름}/docker-nodejs-demo

 

다음 강의는 이 과정들을 UI가 아닌 코드로 구성하는 법을 배운다!