티스토리 뷰

Docker + Github Action + Elastic beanstalk을 사용한 CI/CD를 구축하다 알 수 없는 오류가 발생해서 처음부터 차근차근해보고자 이 글을 쓰게 되었다. 그럼 Spring boot 프로젝트를 Elastic beanstalk에 수동 배포해보자.

 

1. Spring boot 프로젝트 생성

Spring boot 3.0.5 사용

Spring  web 의존성만 추가해 프로젝트를 생성했다.

implementation 'org.springframework.boot:spring-boot-starter-web'

 

2. Controller 작성

간단히 hello world를 반환하는 api를 작성했다.

@RestController
public class HelloController {

    @GetMapping("/")
    public String hello() {
        return "hello world!";
    }
}

 

3. Dockerfile 작성 및 빌드

1. Docker 이미지를 Docker hub에 올릴 것이므로, Dockerfile을 작성했다.

FROM openjdk:17-jdk-slim-buster

WORKDIR /app

COPY build/libs/demo-0.0.1-SNAPSHOT.jar app.jar

CMD ["java", "-jar", "app.jar"]

2. Dockerfile 빌드해 Dcoker 이미지 생성

docker build . -t twoosky/springboot-demo

3. Docker 컨테이너 실행 (정상 작동하는지 확인 해보기)

 docker run -p 8080:8080 twoosky/springboot-demo

 

4.  Docker hub에 푸시

1. Docker hub 로그인

docker login

2. Docker hub에 Docker 이미지 푸시

 docker push twoosky/springboot-demo

 

 

3. Docker hub에 제대로 이미지가 푸시되었는지 확인

 

 

5. docker-compose.yml 작성

image는 Docker hub 저장소의 이미지 이름으로 지정한다.

ports 는 tcp port 80과 컨테이너 port 8080을 연결한다는 의미이다.

version: "3.8"
services:
  springboot:
    image: "twoosky/springboot-demo"
    ports:
      - "80:8080"
    restart: "always"

 

5. AWS Elastic Beanstalk 애플리케이션 생성

아래 부분만 입력하고, 나머지는 기본설정으로 해주었다.

 

 

 

6. AWS Elastic beanstalk에 docker-compose 배포

애플리케이션 생성 후 애플리케이션 환경에 들어가면 아래와 같은 화면이 나온다.

업로드 및 배포를 클릭해 위에서 작성한 docker-compose 파일을 elastic beanstalk에 배포해보자

 

1. 업로드 및 배포 클릭

 

 

2. docker-compose 파일 업로드

 

 

 

배포가 끝난 뒤 애플리케이션 환경에서 위 링크를 클릭하면 아래와 같이 hello world! 가 나온다. (배포 성공!)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함