Home Jenkins를 사용한 CI/CD with Docker
Post
Cancel

Jenkins를 사용한 CI/CD with Docker

CI/CD

Continuous Integration과 Continuous Delivery이다. 애플리케이션 개발 단계를 자동화하여 애플리케이션 개발을 보다 짧은 주기로 고객에게 제공하는 방법이다. 애플리케이션 통합, 테스트, 제공, 배포에 이르는 라이프사이클 전체에 걸쳐 지속적인 자동화와 모니터링을 제공한다.

docker에 jenkins 컨테이너 실행하기

1
docker run --name jenkins -p 9090:8080 -p 50000:50000 -d -v /var/run/docker.sock:/var/run/docker.sock -v jenkins_home:/var/jenkins_home -u root jenkins/jenkins:lts

위 명령을 사용해 docker에 jenkins 컨테이너를 실행한다. -v 옵션은 저장소를 공유하는 설정이다.

jenkins에서 docker 설치

1
2
3
curl https://get.docker.com/ > dockerinstall && chmod 777 dockerinstall && ./dockerinstall

apt install docker-compose

jenkins에 다시 docker를 설치해 준다. curl을 사용해 설치하고 docker-compose를 사용할 경우 아래 명령어도 함께 실행한다.

docker.sock 권한 변경

1
sudo chmod 666 /var/run/docker.sock

docker.sock 경로 권한을 666으로 변경해 그룹 내 다른 사용자도 접근 가능하도록 설정한다.

스크린샷 2022-12-29 오후 10.36.12.png

jenkins shell로 접근하여 실행중인 docker 컨테이너를 확인한다. 로컬에 설치된 docker의 컨테이너를 확인할 수 있다.

vue 프로젝트 배포하기

vue 프로젝트 생성

1
vue create deploytest

vue 프로젝트를 생성한다. 기본 vue 프로젝트를 gitlab에 배포할 것이다.

jenkins에서 배포하기

스크린샷 2022-12-29 오후 10.40.07.png

프로젝트 이름은 vue_deploy로 한다.

스크린샷 2022-12-29 오후 10.41.07.png

생성한 vue repository 경로를 추가한다.

스크린샷 2022-12-29 오후 10.41.51.png

빌드가 발생하는 경우를 선택해 준다.

1
2
docker build -t vue:front .
docker run --name vue -d -p 8080:8080 vue:front

build 설정에 Execute shell 을 선택하고 Command에 위 명령어를 넣어준다.

스크린샷 2022-12-29 오후 10.48.21.png

스크린샷 2022-12-29 오후 10.49.06.png

jenkins에서 정상적으로 배포된 것을 확인할 수 있고, docker 컨테이너도 정상적으로 실행되어 페이지 접근이 잘 되는것을 볼 수 있다.

This post is licensed under CC BY 4.0 by the author.

MYSQL event scheduler로 데이터 조작하기

spring boot profile 환경변수 분할 적용