Skip to Content
Suffering builds character
아카이브25.devopsDocker특징3.애플리케이션 빌드1.자바 애플리케이션 빌드

1.자바 애플리케이션 빌드

Java, Spring Boot 기반으로 구현된 애플리케이션을 도커 이미지로 빌드하여 컨테이너 기반으로 실행

1. 실습용 애플리케이션을 도커 이미지로 빌드

1-1. 실습 폴더 경로로 이동

terminal
cd ~/080258/ch04/exercises/image-of-the-day

1-2. Dockerfile 스크립트 확인

Dockerfile
FROM diamol/maven AS builder WORKDIR /usr/src/iotd COPY pom.xml . RUN mvn -B dependency:go-offline COPY . . RUN mvn package # app FROM diamol/openjdk WORKDIR /app COPY --from=builder /usr/src/iotd/target/iotd-service-0.1.0.jar . EXPOSE 80 ENTRYPOINT ["java", "-jar", "/app/iotd-service-0.1.0.jar"]

1-3. 도커 이미지 빌드

terminal
docker build -t image-of-the-day .

1-4. 빌드된 이미지 확인

terminal
docker images

1-5. 이미지 기반으로 컨테이너 생성 및 실행

terminal
docker container run --name iotd -d -p 8080:80 image-of-the-day

1-6. Public IP 주소로 테스트

{Public IP 주소}:8080/images

응답 결과

JSON
{ "url": "[https://img.youtube.com/vi/5D9j-8Vhyto?rel=0&show/0.jpg](https://img.youtube.com/vi/5D9j-8Vhyto?rel=0&show/0.jpg)", "caption": "A Total Solar Eclipse Close-Up in Real Time", "copyright": "\nJun Ho Oh (KAIST, \nHuboLab); \n Music: \nFlowing Air by \nMattia Vlad Morleo\n" }

1-7. 해당 컨테이너 내부로 진입하여 java, mvn 명령어 실행 가능 여부 확인

컨테이너 내부로 진입

terminal
docker exec -it iotd /bin/sh

java 버전 확인

terminal
java -version

실행 결과

terminal
openjdk version "11.0.10" 2021-01-19 OpenJDK Runtime Environment 18.9 (build 11.0.10+9) OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9, mixed mode, sharing)

mvn(Maven) 버전 확인

terminal
mvn -version

실행 결과

terminal
mvn: not found

→ 도커 이미지 빌드 과정에서 Maven 빌드 도구는 포함되지 않았기 때문에 mvn 명령어는 사용할 수 없음
(일반적으로 빌드 도구는 운영 환경에서 필요하지 않기 때문에 빌드된 이미지에서 제외됨)

Last updated on