다가오는 다음을 향해

[Docker Mac] Jib로 이미지 빌드하여 도커 서비스 배포하기( jar 파일) 본문

Server/Docker

[Docker Mac] Jib로 이미지 빌드하여 도커 서비스 배포하기( jar 파일)

hyeseo 2022. 9. 26. 16:29

 💡 IntelliJ+ DokerHub repository + Jib 로 도커 서비스 배포 방법 입니다.

작성글 일부를 조합했습니다.


▼ 개발환경

MacBook Pro M1 
### Programming language - java-1.8 
### Framework
- Spring Framework : SpringBoot 2.7.3
- Persistence Framework : JPA - Hibernate
### Build Tool- gradle 7.5
### WAS- 내장 Tomcat
### DB- MySql - 8.0.30
### IDE- IntelliJ IDEA (Ultimate Apple Silicon 2022-02)
### Library- Lombok - 1.18.24

 

🌱 Jib 로 도커 서비스 배포하기- 순서


0. bootJar 테스트 : 로컬환경에서 프로젝트가 정상적으로 실행되는지 확인합니다.

 

 

1. Docker 회원가입  https://hub.docker.com/

 

2.  Docker Desktop (Mac) 설치   https://tira-0.tistory.com/218

 

3. 도커 허브 레포지토리 (Docker Hub Repository) 만들기 https://tira-0.tistory.com/220

 

4.  azul/zulu-openjdk:8 container 실행하기

$ docker run -it azul/zulu-openjdk:8 bash

 

5. MySQL Community Server container 실행하기 https://tira-0.tistory.com/221

 

6. application.yml 수정

💡도커 환경을 위한 설정을 추가합니다.
spring.config.activate.on-profile=docker // 도커 환경을 위한 스프링 프로필
server.port=8080 // 서버 기본 포트번호
  • docker의 기본 gateway는 172.17.0.1로 설정되어 있습니다.
  • MySQL의 기본포트번호는 3306이지만, 외부에서 보여질 컨테이너 포트번호는 3309로 설정했습니다. ( 다른 포트번호로 바꾸셔도 됩니다.)

 

application.yml

# MySQL
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# DB Source URL
spring.datasource.url=jdbc:mysql://172.17.0.1:3309/myliket3?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&defaultFetchSize=1000&useSSL=false&allowPublicKeyRetrieval=true

# DB username
spring.datasource.username=[사용자 아이디]
# DB password
spring.datasource.password=[사용자 비밀번호]

...

spring.config.activate.on-profile=docker

#configuring port
server.port=8080

 

 

7. Jib로 도커 허프 레포지토리에 이미지 빌드 : https://tira-0.tistory.com/223

 

 

8.  컨테이너 실행 및 테스트


📌 컨테이너 실행 명령어

$ docker run -d -p8085:8080 --name <컨테이너 이름> <도커 아이디>/<프로젝트명>:<태그>
❯ docker run -d -p8085:8080 --name myliket3.5 ****/myliket3:0.0.2-SNAPSHOT
Unable to find image '****/myliket3:0.0.2-SNAPSHOT' locally
0.0.2-SNAPSHOT: Pulling from ****/myliket3
7a9f619ee5e9: Already exists 
420a8fd0b7f1: Already exists 
8dc986866ff8: Already exists 
dae9ef25f401: Pull complete 
98e6571df888: Pull complete 
dce784c1a651: Pull complete 
Digest: sha256:246c3e31ee83d04ee6f730c3205b2c38a6fb55c26ce81541de3fbeef125889a1
Status: Downloaded newer image for ****/myliket3:0.0.2-SNAPSHOT
52f459b349ee34f737f6c25db49a2c0f2ccefc638ec2e52f19fb2fccf368738b

DockerDesktop에서 확인 하거나 docker ps 명령어로 컨테이너 실행여부를 확인 할 수 있습니다.

 

📌 자체 테스트

  • 포스트맨으로 등록 테스트를 했습니다.

[ Wed Url 조회]

 

💡 IntelliJ로 컨테이너 실행하기 https://tira-0.tistory.com/226