파이널 프로젝트 - 14주차 1일(3/20)

최수환·2023년 3월 20일
0

Kubernetes

목록 보기
61/75
post-thumbnail

도커라이징

  • 도커라이징이란 어떠한 기술이나 툴 보다는 개발자가 만든 코드를 테스트 & 빌드 해보고 도커 이미지로 만드는 과정을 말한다.
  • 이전 블로그에서 전반적인 인프라구축은 마무리하였다. 추후에 필요한것이나 변경사항에 대해 추가로 구축할 예정이다
  • 따라서 오늘부터는 개발 담당을 한 팀원분이 주신 테스트코드를 이용하여 도커라이징을 통해 이미지화시킬것이다. 해당 이미지를 가지고 ArgoCD에서 Deployment의 파드로 띄울것이다.

1 . 일단 개발자분이 주신 테스트코드를 TEST & BUILD하고 Dockerfile을 작성해서 Build를 통해 이미지화 시켜서 Docker Hub에 Push까지 하는 작업을 하는 환경을 위해 EC2인스턴스를 생성한다

  • ubuntu 20.04 , t3.2xlarge , 키페어 및 보안그룹 생성 , 스토리지 40G

2 . ssh를 통해 인스턴스에 접속한다

  • 가시성을 위해 hostname을 변경한다.

3 . git clone

  • 개발자님이 push하신 git을 clone해서 코드를 가져온다

4 . docker 설치

  • Dockerfile을 Build하기 위해서는 docker명령어를 사용할 수 있어야하기 때문에 docker를 설치한다.

5 . Java설치

  • 개발자님의 코드는 Java Spring Boot로 작업되었기 때문에 java를 설치한다.
sudo apt update
sudo apt search openjdk-11-jdk
sudo apt install openjdk-11-jdk

6 . Gradle 설치

  • Gradle은 수동설치, SDK, Brew를 이용한 설치가 있다.
  • 수동설치를 할 것이고, 8.0.2버전을 설치할 것이다.

📒 Gradle과 Maven의 차이

VERSION=8.0.2
wget https://services.gradle.org/distributions/gradle-${VERSION}-bin.zip -P /tmp
sudo apt install -y unzip
sudo unzip -d /opt/gradle /tmp/gradle-${VERSION}-bin.zip
sudo ln -s /opt/gradle/gradle-${VERSION} /opt/gradle/latest

sudo vi /etc/profile.d/gradle.sh # 아래 두줄 작성 후 저장 
export GRADLE_HOME=/opt/gradle/latest
export PATH=${GRADLE_HOME}/bin:${PATH}

sudo chmod +x /etc/profile.d/gradle.sh
source /etc/profile.d/gradle.sh

📒 Gradle설치 참조

gradle wrapper --gradle-version 8.0.2
  • gradlew (gradle wrapper) 설치
  • 일일이 작업할때마다 gradle을 설치하지 않아도, 즉 gradle없이도 gradle을 사용하게 해주는 것이 gradle wrapper이다.
./gradlew build # build 
./gradlew clean # build 디렉터리 삭제 
  • 개발자님의 코들드를 테스트 & 빌드한다.
  • Build 디렉터리가 생성되고 libs가 존재한다.
  • libs에는 jar파일이 생성되어 있는 것을 확인
java -jar <파일 >.jar
  • 테스트를 위해 BUILD와 TEST를 통해 나온 결과물인 jar파일을 배포시켜본다.

  • 브라우저에 인스턴스PUBLIC IP:8080 입력시 백엔드 서버가 정상적으로 배포된 것을 확인

마치며

  • 현재 개발자님의 백엔드 서버 개발 테스트 코드를 TEST & BUILD를 마쳤고, 배포까지 정상적으로 되는 것을 확인했다.
  • 명일 작업은 위의 작업에 이어서 테스트코드를 TEST % BUILD하고 배포하는 Dockerfile을 작성해서 빌드를 통해 이미지화 시키고 , Docker Hub에 Push후 해당 이미지를 가지고 ArgoCD에서 Deployment의 Pod로 띄우는 작업까지 하는것이 목표이다.
profile
성실하게 열심히!

0개의 댓글