Files
sayit.helpdesk/Dockerfile
dykim 858a9e18cb
All checks were successful
Main-Build / build-and-push (push) Successful in 1m17s
Helpdesk dev, prod 배포환경 분리
2025-12-10 13:27:49 +09:00

49 lines
1.4 KiB
Docker

# 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
# 빌드 시 주입할 OTEL 관련 인자
ARG OTEL_ENV=prod
ARG OTEL_SERVICE_NAME=sayit-helpdesk
ENV TZ=Asia/Seoul \
OTEL_SERVICE_NAME=${OTEL_SERVICE_NAME} \
OTEL_EXPORTER_OTLP_ENDPOINT=http://192.168.100.203:4317 \
OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
OTEL_RESOURCE_ATTRIBUTES="deployment.environment=${OTEL_ENV}" \
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"]