You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
서버(AWS EC2)에서 dockerhub에 존재하는 docker image 파일을 pull로 받아옵니다.
docker run 명령어를 통해 docker image 파일을 실행합니다.
🎯 스프링 부트 프로젝트 생성
스프링 부트 프로젝트를 생성하고, 간단하게 Controller 생성한 뒤 위와 같이 작성합니다.
(스프링 부트 프로젝트의 생성 방법에 대해서는 생략하겠습니다.)
🎯 Dockerfile 생성
위 사진과 같이 프로젝트 하위에 Dockerfile 이라는 파일을 생성하고 아래 내용을 작성합니다.
FROMopenjdk:8-jdk-alpine// FROM amazoncorretto:11 ==> amazon corretto 11 사용할 경우ARGJAR_FILE=build/libs/*.jarCOPY${JAR_FILE} app.jarENTRYPOINT ["java","-jar","/app.jar"]
// ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]// => 설정파일을 분리해서 사용할 때// java -jar -Dspring.profiles.active=prod app.jar
위 코드에 대한 설명을 간략히 나타내면 다음과 같습니다.
FROM openjdk:8-jdk-alpine
open jdk java8 버전의 환경을 구성합니다.
Amazon의 corretto 버전을 사용할 경우, 주석처리 한 부분으로 사용하면 됩니다.
ARG JAR_FILE=build/libs/*.jar
build가 되는 시점에 JAR_FILE 이라는 변수명에 build/libs/*.jar 표현식을 선언했다는 의미입니다.
📎 Spring Boot + Docker + AWS EC2 배포하기(Mac M1)
안녕하세요, 이번 시간에는 스프링 부트 애플리케이션을 AWS EC2에 도커를 통해 배포해보도록 하겠습니다.
※ 틀린 내용이 존재할 수 있으니 참고해서 봐주시면 감사하겠습니다 :)
저의 환경 설정은 다음과 같습니다.
또한 이번에 M1에서 배포를 할 때, 기존 블로그 내용대로 작업을 하던 도중 에러가 발생했고 약간의 삽질이 있었는데요 .. 😭
간략히 정리해보도록 하겠습니다.
https://class101.net/products/5fc4a3b4fc231b000d85661b
대략적인 과정은 위와 같습니다.
Dockerfile
을 build 해서docker image
파일을 생성합니다.dockerhub
에 push 합니다.dockerhub
에 존재하는 docker image 파일을 pull로 받아옵니다.docker image
파일을 실행합니다.🎯 스프링 부트 프로젝트 생성
스프링 부트 프로젝트를 생성하고, 간단하게 Controller 생성한 뒤 위와 같이 작성합니다.
(스프링 부트 프로젝트의 생성 방법에 대해서는 생략하겠습니다.)
🎯 Dockerfile 생성
위 사진과 같이 프로젝트 하위에 Dockerfile 이라는 파일을 생성하고 아래 내용을 작성합니다.
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]
🎯 gradle 빌드
위 명령어를 통해 빌드하면 아래와 같이 build/libs 경로에 jar 파일이 생성됩니다.
🎯 Docker Hub
https://hub.docker.com/
위 사이트에 들어가서 회원가입을 하고 로그인을 합니다.
그 후 Repositories > Create Repository 로 들어가서 도커 레포지토리를 생성합니다.
Repository 이름과 Public으로 설정하고 Create 를 클릭합니다.
🎯 Docker Image build
호옥시 도커가 설치되어있지 않다면 아래 사이트를 통해 먼저 도커를 설치해주세요 :)
https://itkoo.tistory.com/10
위 명령어를 통해 dockerfile -> docker image 로 빌드를 진행합니다.
만약 --platform linux/amd64 옵션을 추가하지 않고 빌드를 하면 아래와 같은 에러가 발생합니다. 😭
위 문제는 깃허브 에 자세히 나와있습니다.
애플 M1의 경우 도커 이미지로 빌드할 때 --platform 옵션을 사용해야 합니다.
🎯 Docker Image push
위에서 생성한
docker image
파일을Docker Hub
에 push를 해줍니다.push 명령어는 docker hub의 Repository에 보면 확인할 수 있습니다.
만약 위와 같이 denied: requested access to the resource is denied 라는 문구가 나오면 로그인을 해주어야 합니다.
docker login 명령어를 통해 로그인을 한 뒤 다시 push하면 정상적으로 push가 되고, docker hub의 Repository에
새로운 TAG(latest)가 생성된 걸 확인할 수 있습니다.
현재 상태는 위와 같이 Dockerfile 을 통해 docker image로 빌드하고, docker hub에 push한 상태입니다.
이제 서버(AWS EC2)에서 도커를 설치하고, 애플리케이션을 배포하면 끝입니다 !
🎯 AWS EC2
아래 링크를 통해 AWS EC2 인스턴스를 생성하고, 도커를 설치한 후 애플리케이션을 배포해보도록 하겠습니다.
AWS EC2 인스턴스 생성하기
도커 설치
도커 실행
도커 허브에 존재하는 이미지 파일 pull
도커 이미지를 통해 스프링 부트 애플리케이션 배포(실행)
도커 이미지를 통해 스프링 부트 애플리케이션이 정상적으로 실행이 됩니다.
최종적으로 AWS의 IP로 접속해보면 위와 같이 정상적으로 배포가 된 걸 확인할 수 있습니다.
References
The text was updated successfully, but these errors were encountered: