-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
30 lines (22 loc) · 945 Bytes
/
Dockerfile
File metadata and controls
30 lines (22 loc) · 945 Bytes
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
FROM eclipse-temurin:21-jre-alpine
# 타임존, 필수 패키지
RUN apk add --no-cache tzdata curl && \
cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \
echo "Asia/Seoul" > /etc/timezone
WORKDIR /app
# 로그 디렉토리 및 비루트 유저
RUN addgroup -S app && adduser -S app -G app && \
mkdir -p /app/logs && chown -R app:app /app
USER app
# JAR 복사
COPY build/libs/*.jar app.jar
# 기본 환경변수 (필요시 CI/CD에서 -e USE_PROFILE=dev 로 덮어쓰기)
ENV USE_PROFILE=local
ENV JAVA_OPTS=""
EXPOSE 8080
# Healthcheck (스프링 액추에이터 사용 시)
# 없으면 이 블록 지워도 됩니다.
HEALTHCHECK --interval=30s --timeout=5s --retries=5 CMD \
wget -qO- http://127.0.0.1:8080/actuator/health | grep '"status":"UP"' || exit 1
# ❗ 쉘을 통해 변수 치환되도록 sh -c 사용
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar --spring.profiles.active=${USE_PROFILE:-local}"]