다가오는 다음을 향해
[Docker Mac] Jib로 이미지 빌드하여 도커 서비스 배포하기( jar 파일) 본문
💡 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 테스트 : 로컬환경에서 프로젝트가 정상적으로 실행되는지 확인합니다.
- Maven plugin Jar : https://tira-0.tistory.com/193
- Gladle plugin Jar : https://tira-0.tistory.com/219
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
'Server > Docker' 카테고리의 다른 글
[Docker IntelliJ] IntelliJ로 컨테이너 실행하기 (0) | 2022.09.26 |
---|---|
[Docker Mac] 도커파일(Dockerfile)로 서비스 배포하기( jar 파일) (0) | 2022.09.26 |
[Docker Mac] Jib 로 이미지 올리기(image push) (0) | 2022.09.26 |
[Docker] 도커파일(Dockerfile)로 이미지 빌드하기 - Jar (1) | 2022.09.26 |
[Docker Mac] MySQL Community Server container 실행하기 (1) | 2022.09.26 |