목차
1. linux 서버(클라우드)에 docker를 이용해 배포하는 과정
2. 배포할 때 주의사항
3. 도커를 이용한 배포에 대한 생각
1. linux 서버(클라우드)에 docker를 이용해 배포하는 과정
상황
spring boot 프로젝트와 mysql을 이미지로 만든 뒤 linux 서버에서 docker-compose를 통해 두 컨테이너를 같이 실행. => 실무에선 was와 db를 같은 서버에서 돌리지는 않지만 테스트를 위해 이렇게 진행함
* 대부분의 자세한 내용은 필자의 Docker 카테고리의 글에 정리되어 있음. 아래 관련글 참고
로컬 서버에서의 액션
- Dockerfile, docker-compose.yaml 파일 작성
- Spring boot project 이미지 생성
- 프로젝트 git hub에 push
- 생성한 spring boot 이미지를 docker hub에 업로드
linux 서버(클라우드) 에서의 액션
- 서버에 도커 설치, docker-compose 설치 => window 로컬 서버와 다르게 docker-compose를 설치해야 함
- docker-hub에서 업로드 한 spring boot 이미지 받아오기
- github에서 프로젝트 코드 받아오기
- 프로젝트 루트 경로로 이동한 후 docker-compose up 실행
실행결과
2. 배포할 때 주의사항
docker hub에 이미지 업로드 할 때 명칭 변경
만약 spring boot 이미지의 이름을 spring-boot-image로 만들었다면 docker-hub에 업로드하기 위해서는
<docker 아이디>/spring-boot-image로 바꾸어주어야 업로드 중 에러가 나지 않는다.
추가로 docker-compose.yaml에서 이미지의 명칭도 위와 같이 꼭 변경해주어야 한다.
3. 도커를 이용한 배포에 대한 생각
- 도커를 통해 WAS에 대한 환경과 mysql 환경을 쉽고 확실하게 구성할 수 있어서 좋았음.
확실히 도커를 통해 로컬에서 실행이 되면 클라우드서버(linux)에서도 도커를 통한 실행이 보장되었음. - 테스트를 위해 naver cloud platform의 무료 서버를 사용하였고, 도커를 설치한 것만으로 느려진 걸로 보아 저스펙 서버에서는 신중히 써야 할 듯 함
- Jenkins를 같이 사용하지 않는 한 이식성이 좋은 것 말고는 큰 메리트가 있는 거 같지 않음. 오히려 이미지를 업데이트하고 컨테이너를 실행하는 과정이 jar를 새로 묶고 실행시키는 것보다 귀찮음.
관련글
반응형
'Docker' 카테고리의 다른 글
Docker compose Spring boot ,mysql 연동 방법 (0) | 2023.08.29 |
---|---|
Docker spring boot mysql 연동 자세히 설명 (4) | 2023.08.28 |
Spring boot 도커 파일 생성 및 배포 (0) | 2023.08.28 |