728x90
반응형
# 예제 애플리케이션으로 개발한 게시판 프로그램
# 해당 게시판 프로그램을 dockerfile로 작성 후 빌드, ECR에 업로드를 수행 한다.
1. 소스코드 확인
해당 소스코드는 SpringBoot + mustache + html + javascript를 활용하여 개발 되었다.
해당 소스코드를 mobaxterm를 활용하여 BastionHost 서버로 옮긴다.
2. 빌드를 위한 dockerfile 작성
vim dockerfile 명령어를 통해 파일을 작성 한다.
FROM adoptopenjdk:11-jdk-hotspot AS builder
COPY gradlew .
COPY gradle gradle
COPY build.gradle .
COPY settings.gradle .
COPY src src
RUN chmod +X ./gradlew
RUN ./gradlew bootJar
FROM adoptopenjdk:11-jdk-hotspot
COPY --from=builder build/libs/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
생성한 dockerfile을 기반으로 이미지를 생성하기 위해 아래의 명령어를 실행 한다.
- dockerfile의 위치는 아래와 같이 해당 소스코드 안에 위치 해야 한다.
- dockerfile 실행
# 기본 명령어
sudo docker build -t {생성할 이미지 명} .
# 예시
sudo docker build -t notice-board .
- gradlew 오류 발생 시 해결 사항 (아래와 같이 오류가 발생)
아래의 명령어를 입력하여 gradlew의 실행 권한을 부여한다.
chmod 755 gradlew
3. 이미지가 정상적으로 생성되었는지 확인하기
sudo docker images
아래와 같이 조회되는것을 확인 할 수 있다.
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
notice-board latest 610d724858f7 11 minutes ago 477MB
<none> <none> 4e05b9cca629 11 minutes ago 812MB
<none> <none> 7daca6813822 14 minutes ago 437MB
adoptopenjdk 11-jdk-hotspot fd22b5791853 7 months ago 437MB
4. docker image 실행하여 테스트 하기
이미지 조회하기
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
notice-board latest 610d724858f7 25 minutes ago 477MB
<none> <none> 4e05b9cca629 26 minutes ago 812MB
<none> <none> 7daca6813822 29 minutes ago 437MB
adoptopenjdk 11-jdk-hotspot fd22b5791853 7 months ago 437MB
이미지 실행하기
sudo docker run --name notice-board-01 -d -p 8080:8080 notice-board
실행한 이미지 확인하기
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9468b7fe02e6 notice-board "java -jar /app.jar" 33 minutes ago Up 33 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp notice-board-01
5. 웹페이지 확인하기
BastionHost의 퍼블릭 ip로 접근하면 아래와 같이 실행된 애플리케이션을 확인 할 수 있다.
728x90
반응형
'⌛ AWS 인프라 구성하기 (MiniProject) > ✅ 개발환경 구성 (EKS)' 카테고리의 다른 글
(미완성) CI/CD 환경 구성 (1) (0) | 2022.05.23 |
---|---|
5. 생성한 이미지를 ECR로 업로드 하기 (0) | 2022.05.12 |
3.EKS ALB 구성하기 & 테스트 Nginx 웹 서버 배포 (1) | 2022.05.11 |
2.EKS 기본 아키텍처 구성하기 (EKS 인프라 구성) (0) | 2022.05.11 |
1.EKS 기본 아키텍처 구성하기 (WorkFlow) (0) | 2022.05.11 |