개요
로컬 환경의 소스 코드를 도커 이미지로 만들어 도커 허브로 푸쉬하고, Cloud Run을 통해 배포해보자!
이 포스팅에서는 Cloud Run 전 단계의 Docker 설정을 해볼 것이다.
포스팅에 앞서 로컬 환경에 다음 세팅이 모두 완료되었음을 가정하고, 이와 관련한 설명은 생략한다.
- Docker Local Setting
- Docker Installation on VM Instance
- Docker Hub Setting
- GCP VM instance Setting
- Bitbucket Repository, branch Setting
- Source Tree - Bitbucket - IntelliJ 연동
1. Docker Image 생성
애플리케이션 코드가 담긴 도커 이미지를 생성해준다.
왜 생성할까?
도커 이미지를 원격 저장소인 도커 허브에 push하고, 이를 google cloud run이 Pull하여 사용하기 때문이다. (➡️ 배포를 위해서!)
따라서 배포 자동화를 위해 도커 이미지를 생성해주는 단계는 필수적이다.
어떻게 생성할까?
Dockerfile 작성
1-1. Dockerfile작성
Spring boot 프로젝트의 root directory에 Dockerfile을 생성하고, 도커 이미지 빌드 관련 세팅을 작성한다.
예시)
# base image 설정
FROM openjdk:17-jdk
# application code 경로
ARG JAR_FILE=build/libs/*.jar
# application code를 docker image app.jar에 복사
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
1-2. Jar 파일 생성
intelliJ 기준 gradle > build > bootJar을 통해 build/libs 디렉토리와 .jar 파일이 생성된다.
Dockerfile을 보면 ARG 인자에 이와 관련된 세팅이 있음을 알 수 있다.
2. 만들어진 이미지를 도커 허브에 PUSH
2-1. Docker Image Build
[ 명령어 ]
# docker build 명령어
docker build -t myName/docker-gcp-test .
[ 결과물 ]
Spring boot 프로젝트가 담긴 파일의 터미널 창을 열어서 위 명령어를 실행해주자.
이때 젤 뒤에 .을 꼭 빼먹지 말아야 한다 !!
현재 디렉토리에 있는 Dockerfile을 사용한다는 뜻이고, 이 파일에 build 내용이 담겨있기에 반드시 필요한 정보다.
2-2. Docker Image Push
[ 명령어 ]
# docker hub push
docker push myName/docker-gcp-test:latest
[결과물]
이렇게 이미지 생성과 Docker Hub에 Push하기까지는 성공이다.
이번 포스팅을 통해 application 코드 관련 docker image 생성과 생성된 이미지를 원격 저장소인 docker hub에 push하는 과정을 살펴보았다.
이제 저장된 코드에 변경 감지가 들어왔을 때, 이를 Google Cloud Build와 Google cloud Run으로 자동화하는 과정을 세팅해보자.
'DevOps > Docker' 카테고리의 다른 글
[Docker] Docker Container OS와 VM | Docker Image Layer (1) | 2023.11.09 |
---|---|
[Docker] MariaDB 도커 이미지와 PyMySQL로 쿼리 작성하기 (0) | 2023.06.08 |
[Docker] 도커란, 가상화(Virtualizaion)와 컨테이너 (0) | 2023.03.29 |