-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile.pinpoint
More file actions
49 lines (38 loc) · 1.71 KB
/
Dockerfile.pinpoint
File metadata and controls
49 lines (38 loc) · 1.71 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
42
43
44
45
46
47
48
49
# Pinpoint APM 적용용 Dockerfile
# 빌드: docker build -f Dockerfile.pinpoint -t dorumdorum-be:pinpoint .
# 실행 시 환경변수: PINPOINT_COLLECTOR_IP, PINPOINT_APPLICATION_NAME, PINPOINT_AGENT_ID
FROM gradle:8.10.2-jdk17 AS builder
WORKDIR /app
COPY gradlew gradlew
COPY gradle gradle
COPY build.gradle settings.gradle* ./
COPY src src
RUN chmod +x ./gradlew && ./gradlew bootJar --no-daemon
# Pinpoint Agent 다운로드
ARG PINPOINT_VERSION=2.5.4
RUN wget -q -O /tmp/pinpoint-agent.tar.gz \
"https://github.com/pinpoint-apm/pinpoint/releases/download/v${PINPOINT_VERSION}/pinpoint-agent-${PINPOINT_VERSION}.tar.gz" \
&& mkdir -p /app/pinpoint-agent \
&& tar -xzf /tmp/pinpoint-agent.tar.gz -C /app/pinpoint-agent --strip-components=1 \
&& rm /tmp/pinpoint-agent.tar.gz
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar
COPY --from=builder /app/pinpoint-agent /app/pinpoint-agent
# Pinpoint Agent JVM 옵션 (환경변수로 Collector IP 등 오버라이드 가능)
ENV PINPOINT_VERSION=2.5.4
ENV PINPOINT_COLLECTOR_IP=pinpoint-collector
ENV PINPOINT_APPLICATION_NAME=dorumdorum
ENV PINPOINT_AGENT_ID=dorumdorum-agent-01
EXPOSE 8080
# pinpoint-root.config에서 Collector IP 오버라이드 (profiler.transport.grpc.collector.ip)
# -D 옵션으로 전달
ENTRYPOINT ["sh", "-c", "java \
-javaagent:/app/pinpoint-agent/pinpoint-bootstrap-${PINPOINT_VERSION}.jar \
-Dpinpoint.agentId=${PINPOINT_AGENT_ID} \
-Dpinpoint.applicationName=${PINPOINT_APPLICATION_NAME} \
-Dprofiler.transport.grpc.collector.ip=${PINPOINT_COLLECTOR_IP} \
-Dpinpoint.container=true \
${JAVA_OPTS} \
-Dspring.profiles.active=${SPRING_PROFILES_ACTIVE:-prod} \
-jar /app/app.jar"]