728x90
도커에서 그래들로 프로젝트 빌드하기
Ubuntu 환경에서 apt install gradle 명령어를 활용하여 gradle을 설치할 때,
Gradle 최신 버전이 아닌, 이전 버전으로 설치되어 배포 시 오류가 발생하는 상황이 발생합니다.
프로젝트 내에 Dockerfile을 활용하여 Gradle을 설치하고 프로젝트를 Build 해보겠습니다.
인텔리제이에서 "Dockerfile"이라는 새로운 파일을 생성합니다.
생성된 파일에 아래 명령어를 입력합니다.
# 그래들 버전, JDK버전에 따라 다르게 수정
FROM gradle:7.6-jdk11-alpine as builder
WORKDIR /build
# 그래들 파일이 변경되었을 때만 새롭게 의존패키지 다운로드 받게함.
COPY build.gradle settings.gradle /build/
RUN gradle build -x test --parallel --continue > /dev/null 2>&1 || true
# 빌더 이미지에서 애플리케이션 빌드
COPY . /build
RUN gradle build -x test --parallel
# APP
FROM openjdk:11.0-slim
WORKDIR /app
# 빌더 이미지에서 jar 파일만 복사
COPY --from=builder /build/build/libs/*-SNAPSHOT.jar ./app.jar
EXPOSE 8080
# root 대신 nobody 권한으로 실행
USER nobody
ENTRYPOINT [ \
"java", \
"-jar", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dsun.net.inetaddr.ttl=0", \
"app.jar" \
]
1. 도커 파일을 생성했다면 리눅스에서 해당 깃을 클론 합니다.
git clone <깃허브 레포지토리 주소>
2. 클론 된 프로젝트 폴더로 이동합니다.
cd <클론된 폴더 경로>
3. 도커를 사용하여 해당 프로젝트를 빌드합니다.
docker build -t springboot-mustache-bbs-repeat .
# 폴더명과 점 사이게 공백이 있습니다.
4. 빌드
3번의 명령어를 입력하면 아래와 같이 프로젝트가 빌드되면서 Dockerfile에 입력한 gradle버전으로 설치됩니다.
5. 실행
docker run -p 8080:8088 -e SPRING_DATASOURCE_URL=jdbc:mysql://<클라우드 인스턴스 주소>:3306/<db스키마> -e SPRING_DATASOURCE_PASSWORD=<db비밀번호> <폴더명>
참조
Gradle을 사용할 때 도커 빌드를 빠르게 하는 방법
Software Developer, I love code.
findstar.pe.kr
반응형
'Server > Infra' 카테고리의 다른 글
[CI/CD] GitLab CI/CD (자바, gradle) (0) | 2022.12.12 |
---|---|
[Docker] 우분투, 도커로 메이븐 프로젝트 빌드하기(Maven Project Build) (0) | 2022.11.15 |
[Docker] 도커(Docker) nginx 연동 (0) | 2022.11.14 |
[Docker] 도커(Docker) MySQL 띄우기 (0) | 2022.11.14 |
[Docker] 우분투(Ubuntu)에 도커(Docker) 설치 (0) | 2022.11.14 |