인텔리제이, Spring Boot, Java 11, Gradle
EC2에 Docker 설치
Local에 Docker 설치
Docker Image로 만들 Spring Boot 프로젝트.
# Docker file
FROM openjdk:11-jdk
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-Dspring.profiles.active=docker", "-jar", "/app.jar"]
도커파일에 위 내용 넣는다!(gradle 빌드후 jar파일)
FROM openjdk:11-jdk
open jdk java11 버전의 환경을 구성합니다.
Amazon의 corretto 버전을 사용할 경우, 주석처리 한 부분으로 사용하면 됩니다.
ARG JAR_FILE=build/libs/*.jar
build가 되는 시점에 JAR_FILE 이라는 변수명에 build/libs/*.jar 표현식을 선언했다는 의미입니다.
build/libs 경로는 gradle로 빌드했을 때 jar 파일이 생성되는 경로입니다.
Maven의 경우 target/*.jar 로 설정해주시면 됩니다.
COPY ${JAR_FILE} app.jar
위에 선언한 JAR_FILE 을 app.jar 로 복사합니다.
ENTRYPOINT ["java","-jar","/app.jar"]
jar 파일을 실행하는 명령어(java -jar jar파일) 입니다.
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=prod","/app.jar"]
운영 및 개발에서 사용되는 환경 설정을 분리해서 사용할 경우, 위와 같이 ENTRYPOINT를 설정할 수 있습니다.
./gradlew clean build
위 명령어를 통해 빌드하면 아래와 같이 build/libs 경로에 jar 파일이 생성됩니다.
cmd창을 열고
docker build --build-arg DEPENDENCY=build/dependency -t 도커허브 ID/Repository --platform linux/amd64 .
※ 가장 마지막 점(.) 도 포함해야 합니다.
※ 경로는 꼭 프로젝트 경로에서 ! ! !
입력하게 되면
성공하게 되며,
위에서 생성한 docker image 파일을 Docker Hub에 push를 해줍니다.
push 명령어는 docker hub의 Repository에 보면 확인할 수 있습니다.
latest ~~~뭐시 size: 나오면 성공한것으로
도커허브를 보면
tags가 생성된것 확인되면 된다 !
이제 서버(AWS EC2)에서 도커를 설치하고, 애플리케이션을 배포하면 끝입니다 !