# 1단계: OTEL Java 에이전트 다운로드 FROM alpine:3.20 AS otel ARG OTEL_VERSION=2.21.0 RUN apk add --no-cache curl && \ curl -fL \ https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_VERSION}/opentelemetry-javaagent.jar \ -o /opentelemetry-javaagent.jar # 2단계: Tomcat 이미지 (Java 8 기준) FROM tomcat:9.0-jdk8-temurin ENV TZ=Asia/Seoul \ OTEL_SERVICE_NAME=helpdesk_service \ OTEL_EXPORTER_OTLP_ENDPOINT=http://192.168.100.203:4317 \ OTEL_EXPORTER_OTLP_PROTOCOL=grpc \ OTEL_RESOURCE_ATTRIBUTES="deployment.environment=prod" \ JAVA_TOOL_OPTIONS="\ -Xms1g \ -Xmx1g \ -XX:+UseG1GC \ -XX:MaxGCPauseMillis=200 \ -XX:+UnlockExperimentalVMOptions \ -XX:+UseStringDeduplication \ -XX:+HeapDumpOnOutOfMemoryError \ -XX:HeapDumpPath=/tmp \ -XX:+DisableExplicitGC \ -javaagent:/opt/opentelemetry-javaagent.jar" # 타임존 설정 RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime # OTEL 에이전트 복사 COPY --from=otel /opentelemetry-javaagent.jar /opt/opentelemetry-javaagent.jar RUN chown 1000:1000 /opt/opentelemetry-javaagent.jar # 기본 웹앱 정리 RUN rm -rf /usr/local/tomcat/webapps/* # Maven 빌드된 WAR 복사 COPY target/sayit-helpdesk.war /usr/local/tomcat/webapps/ROOT.war RUN chown -R 1000:1000 /usr/local/tomcat/ EXPOSE 8080 CMD ["catalina.sh","run"]