5. Docker 이미지 빌드 및 배포 설정
이전시간에서는 Github Integration플러그인을 활용하여 젠킨스 서버로 Github 레파지토리의 소스코드를 불러오고, Maven Integration플러그인을 활용하여 소스코드를 jar파일로 Build하는 작업까지 완료했습니다. 다음 순서로는 Build완료한 jar파일을 별도의 컨테이너로 배포하여 애플리케이션을 서비스해보도록 하겠습니다.
0. MySql Server 생성
DB는 젠킨스의 CI/CD대상이 아니므로 별도의 파일로 관리하지 않을 예정.
docker container run -d --name=mysqldb --restart=always -e MYSQL_ROOT_PASSWORD=education -e MYSQL_DATABASE=guestbook -p 3306:3306 mysql:8
컨테이너 현황

1. 도커 파일 생성
어플리케이션을 컨테이너에서 서비스하기 위해서는 컨테이너를 생성할 수 있는 이미지가 필요합니다. 도커 이미지는 아래 도커파일을 통해 생성하도록 하겠습니다. (편의를 위해 아래 파일은 github상 올려둠)
2. 도커 이미지 생성
생성한 도커파일을 기반으로 도커이미지를 build하기 위해 도커파일이 존재하는 경로에서 아래 명령어를 입력하도록 하겠습니다.
1) 도커 내부 접속
도커로 젠킨스 컨트롤러에 접속하여, Dockerfile이 존재하는 위치까지 이동
2) 도커 이미지 빌드
docker build --no-cache -t wombat1234/cicd_guestbook:1.0 --build-arg VERSION=1.0 .
현재 디렉토리에 존재하는 Dockerfile을 기반으로 wombat1234/cicd_guestbook:1.0라는 이미지를 빌드하는 명령어입니다.wombat1234에는 본인의 도커하브 id를 입력하도록 하세요.

3. 도커 이미지 push
생성한 이미지를 Dcoker Hub로 푸쉬하기 위해선 도커허브로 로그인이 필요하다 단, Personal Access Token을 발급 받아야 로그인이 가능하므로 다음 경로에서 PAT를 발급받고 오도록 하자
https://app.docker.com/accounts/wombat1234/settings/personal-access-tokens

docker login -u <계정명>
로그인 후 image를 도커허브에 push
docker image push wombat1234/cicd_guestbook:1.0

4. 도커 컨테네이로 방명록 앱 실행(배포)
생성한 이미지를 바탕으로 도커이미지를 실행하여 컨테이너를 생성하도록 하겠습니다.
docker container run --name=guestbookapp --rm -p 8081:10000 -e MYSQL_IP=host.docker.internal -e MYSQL_PORT=3306 -e MYSQL_DATABASE=guestbook -e MYSQL_USER=root -e MYSQL_PASSWORD=education wombat1234/cicd_guestbook:1.0

포트바인딩은 호스트PC에서 8081에 접속시 컨테이너 내부의 10000포트와 연결되도록 설정하였습니다.
5. 컨테이너 현황

Last updated