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 tool 을 gradle에서 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를 먼저 실행하고 도커 이미지를 생성해야 한다.
'Back-End > Spring' 카테고리의 다른 글
[Spring Cloud Config] Client yml 환경변수로 작성하기 (0) | 2021.02.22 |
---|---|
[Spring Cloud Config] Client 의 bootstrap.yml 지원 만료 (0) | 2021.02.22 |
[백기선] 스프링 프레임워크 핵심 기술 정리5 - Validation (0) | 2020.10.04 |
[백기선] 스프링 프레임워크 핵심 기술 정리4 - Resource (0) | 2020.10.04 |
[백기선] 스프링 프레임워크 핵심 기술 정리3 - ApplicationContext (0) | 2020.10.04 |
댓글