-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
41 lines (34 loc) · 1.53 KB
/
Dockerfile
File metadata and controls
41 lines (34 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 빌드 스테이지 - Gradle을 사용하여 빌드
FROM gradle:8.4-jdk17 AS builder
WORKDIR /app
COPY --chown=gradle:gradle . .
RUN chmod +x ./gradlew
RUN ./gradlew clean bootJar -x test --no-daemon
# 실행 스테이지
FROM eclipse-temurin:17-jdk
# 시간대 설정
RUN apt-get update && apt-get install -y tzdata \
&& ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime \
&& echo "Asia/Seoul" > /etc/timezone \
&& dpkg-reconfigure -f noninteractive tzdata
# Node.js 및 Chrome 설치
RUN apt-get update --fix-missing && \
apt-get install -y curl && \
curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y nodejs && \
npm install -g lighthouse && \
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor > /usr/share/keyrings/google-linux-signing-keyring.gpg && \
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-linux-signing-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list && \
apt-get update && \
apt-get install -y google-chrome-stable && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 빌드된 JAR 파일 복사
COPY --from=builder /app/build/libs/app.jar app.jar
# Copy resource files
RUN mkdir -p /app/resources
COPY --from=builder /app/src/main/resources/ /app/resources/
# Java 실행 포트 노출
EXPOSE 8080
# 애플리케이션 실행
ENTRYPOINT ["java", "-jar", "app.jar", "--spring.profiles.active=docker", "--spring.config.location=classpath:/,file:/app/resources/"]