Docker 이미지 생성 및 배포
먼저 docker 이미지 파일을 생성하고 도커허브에 저장한다.
그 후 yaml 파일을 만들어 쿠버네티스로 관리한다.
본 프로젝트는 Mac OS에서 진행했다. Docker Desktop이 설치되어 있고 kubernetes가 활성화되어 있다고 가정한다. 참고
1. Docker 이미지 생성 및 배포
Dockerfile 생성
각 프로젝트 루트 파일에 Dockerfile
을 생성한다. 본 포스트에서는 서버는 스프링 부트로, 프론트엔드는 스프링으로 구현했음을 다시한번 언급한다.
Spring Dockerfile
1 |
|
FROM : 기본 이미지를 지정한다.
ENTRYPOINTA : 이미지가 컨테이너화 되며 실행될 명령을 입력한다.
React Dockerfile
1 |
|
참고로 폴더 안에 node_modules 폴더를 확인 할 수 있는데 해당 파일은 삭제한다.
container를 만들면서 알아서 npm install로 node_modules을 생성해주기 때문이다.
도커 빌드
Dockerfile 이 있는 루트에서 실행해야 하며 반드시 . 을 입력해야 한다.
. 는 현재 명령어가 실행되는 곳의 기준으로 Dockerfile의 위치이다.
1 |
|
도커 이미지가 빌드가 잘 되면 아래 명령어를 실행해서 정상적으로 되었는지 확인할 수 있다.
1 |
|
도커 이미지 배포
이제 빌드된 이미지를 도커 허브에 배포한다.
1 |
|
2. 쿠버네티스 배포
이제 쿠버네티스에 배포한다.
배포 명령어
1 |
|
위 세 개의 명령어를 수행하면 post_deployment.yaml 파일이 생성된다.
1 |
|
다음 명령어를 입력하여 배포한다.
1 |
|
그 후 kubectl get all
명령어로 확인할 수 있다.
외부에서 HTTP 접근하기 위해서 port-forward 사용
1 |
|
이후 localhost:8082
로 접근할 수 있다.
3. 쿠버네티스 Default 대시보드
(1). 대시보드 UI 배포
1 |
|
(2). 커맨드 라인 프록시
다음 명령어를 실행함으로써 대시보드를 사용할 수 있다.
1 |
|
(3). 계정 생성
대시보드 로그인에 필요한 계정은 다음 블로그를 참고하였다.
출처
[Spring Boot] Docker 컨테이너 배포 (with. Gradle) - dev , prod 별로 배포 할 때 참고
Spring Boot 과 Docker (with jib) - 도커 파일에 대해서 공부할 때 참고