티스토리 뷰
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! 가 나온다. (배포 성공!)
'DevOps > AWS' 카테고리의 다른 글
[AWS] AutoScaling CodeDeploy Blue/Green CI/CD (0) | 2023.09.26 |
---|---|
[AWS] Auto Scaling, Elastic Load Balancer 구성해보기 (0) | 2023.07.11 |
[AWS] Github Action + AWS Elastic Beanstalk을 사용한 CI/CD (3) (0) | 2023.03.29 |
[AWS] Github Action + AWS Elastic Beanstalk을 사용한 CI/CD (2) (0) | 2023.03.17 |
[AWS] Github Action + AWS Elastic Beanstalk을 사용한 CI/CD (1) (1) | 2023.03.15 |