Server/Docker
[Docker Mac] 도커파일(Dockerfile)로 서비스 배포하기( jar 파일)
hyeseo
2022. 9. 26. 16:37
💡 IntelliJ+ Dokerfile 로 도커 서비스 배포 방법 입니다.
작성글 일부를 조합했습니다.
▼ 개발환경
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
🌱 도커파일로 서비스 배포하기- 순서
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. azul/zulu-openjdk:8 container 실행하기
$ docker run -it azul/zulu-openjdk:8 bash
4. MySQL Community Server container 실행하기 https://tira-0.tistory.com/221
5. 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
6. 도커파일 이미지 빌드 : https://tira-0.tistory.com/222
7. 컨테이너 실행 및 테스트
📌 컨테이너 실행 명령어
$ 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