Files
sayit.helpdesk/Dockerfile
2025-12-05 13:29:12 +09:00

46 lines
1.5 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 + JDK 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="-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 rm -rf /usr/local/tomcat/webapps/* && \
mkdir -p /usr/local/tomcat/webapps/ROOT && \
mkdir -p /usr/local/tomcat/conf/Catalina/localhost
# Maven 빌드 결과 WAR를 임시 위치에 복사
COPY target/sayit-helpdesk.war /tmp/sayit-helpdesk.war
# WAR를 ROOT 디렉터리로 풀어서 배포
RUN cd /usr/local/tomcat/webapps/ROOT && \
"$JAVA_HOME/bin/jar" xf /tmp/sayit-helpdesk.war && \
rm /tmp/sayit-helpdesk.war
# Tomcat 디렉토리 소유권을 UID/GID 1000:1000 으로 변경
RUN chown -R 1000:1000 /usr/local/tomcat
# 컨테이너 실행 계정: UID 1000 / GID 1000
USER 1000:1000
EXPOSE 8080
CMD ["catalina.sh", "run"]