본문 바로가기
Spring/Spring Cloud

스프링부트 도커 이미지 만들기 (에러 해결 과정) (feat. querydsl)

by hongdor 2021. 2. 22.
728x90

Spring 공식문서 참고 : Topical Guide | Spring Boot Docker

 

0. project root directory에 Dockerfile을 만들고 아래 내용을 작성한다.

 

Dockerfile 파일

FROM openjdk:11
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

 

명령어 실행

docker build --build-arg JAR_FILE=build/libs/*.jar -t myorg/myapp .

>myorg/myapp 은 이미지 이름이므로 변경 가능. 맨끝의 점까지 써야한다.

 

 

Spring Boot docker image 만드는 과정에서 고생한 것들( feat. querydsl )

 

1. docker image 생성 실패. 에러가 발생했다.

querydsljava 관련 에러 였다.

 

2. intellij 에서 빌드 시 error: package com.querydsl.core.types does not exist ... 에러 발생

> intellij 의 gradle build toolgradle에서 intellij로 변경. 빌드 성공

 

3. 여전히 docker image 생성시 에러 발생. gradle 빌드를 해보기로 했다.

하지만 gradle 빌드 시 java_home is not set and no 'java' command could be found in your path 에러 발생

 

JAVA_HOME 환경 변수 설정 검색 후 그대로 따라했다.

그리고 java11을 제외한 java8 폴더 다른 곳으로 이동 시켰다.

cmd 에서 javac 치고 엔터. 정상 작동 확인.

 

4. java 치고 엔터. java 11버전을 설정했는데 과거에 설치했던 java8 의 경로를 찾을 수 없다고 나온다.

 

시스템 환경 변수 path 의 편집을 누른후

C:\Program Files (x86)\Common Files\Oracle\Java\javapath 삭제

cmd에서 java를 치고 엔터. 정상 동작 확인.

 

5. ./gradlew bootJar 정상작동

 

6. 명령어 docker build --build-arg JAR_FILE=build/libs/*.jar -t myorg/myapp . 정상 실행 및 이미지 생성 .

> gradlew bootJar를 먼저 실행하고 도커 이미지를 생성해야 한다.

 

 

728x90

댓글0