docker로 spring boot 서버 배포
Vibecap 서버 배포
docker를 사용해서 애플리케이션을 배포하는 과정은 다음과 같다.
- 로컬에서 docker image 빌드
- docker image를 docker hub에 업로드
- 배포 환경에서 docker image 다운로드
- 배포 환경에서 docker container 실행
도커 이미지 생성
배포 환경에 맞는 이미지를 생성해야 한다.
애플리케이션이 실행될 architecture에 맞는 이미지를 생성해야 한다.
Dockerfile
작성
FROM --platform=$BUILDPLATFORM openjdk:11
ARG BUILDPLATFORM
COPY . /app
WORKDIR /app
CMD ["java", "-jar", "Vibecap_Back-0.0.1-SNAPSHOT.jar"]
이미지를 빌드할 때 컨테이너가 실행될 기기의 아키텍처를 인자로 전달되도록 작성했다.
$ docker image build --build-arg BUILDPLATFORM=amd64 -t mingeun2154/vibecap-server:0.0.0 .
이미지의 namespace를 docker hub 계정 닉네임으로 지정해줘야 push 할 수 있다.
도커 허브에 업로드
로컬에서 빌드한 이미지를 도커 허브에 업로드한다.
도커 허브에 접근하기 위해서는 docker hub에 로그인 해야한다.
$ docker login
$ docker image push mingeun2154/vibecap-server:0.0.0
도커 이미지 다운로드
$ docker image pull mingeun2154/vibecap-server:0.0.0
docker container 실행
-p local_port:container_port
: port forwarding-d
: 백그라운드 컨테이너 실행. ec2 instance와의 연결이 종료되어도 컨테이너는 종료되지 않고 계속 실행된다.
$ docker container run -d -p 8080:8080 mingeun2154/vibecap-server:0.0.0
모든 도커 컨테이너 정보 출력
$ docker ps -a
Comments