컨테이너 서비스 구동 계정 조정
This commit is contained in:
28
Dockerfile
28
Dockerfile
@@ -1,6 +1,7 @@
|
|||||||
# 1단계: 에이전트 다운로드
|
# 1단계: OTEL Java 에이전트 다운로드
|
||||||
FROM alpine:3.20 AS otel
|
FROM alpine:3.20 AS otel
|
||||||
ARG OTEL_VERSION=2.21.0
|
ARG OTEL_VERSION=2.21.0
|
||||||
|
|
||||||
RUN apk add --no-cache curl && \
|
RUN apk add --no-cache curl && \
|
||||||
curl -fL \
|
curl -fL \
|
||||||
https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_VERSION}/opentelemetry-javaagent.jar \
|
https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_VERSION}/opentelemetry-javaagent.jar \
|
||||||
@@ -9,15 +10,12 @@ RUN apk add --no-cache curl && \
|
|||||||
# 2단계: Tomcat 이미지
|
# 2단계: Tomcat 이미지
|
||||||
FROM tomcat:9.0-jdk17-temurin
|
FROM tomcat:9.0-jdk17-temurin
|
||||||
|
|
||||||
# non-root 계정 생성 (UID/GID 1000:1000)
|
# 실행 계정 생성 (uid=1000, gid=1000)
|
||||||
RUN groupadd -g 1000 job && \
|
RUN groupadd -g 1000 job && \
|
||||||
useradd -u 1000 -g 1000 -m job
|
useradd -u 1000 -g 1000 -m job
|
||||||
|
|
||||||
# Tomcat 디렉토리 권한을 1000:1000 으로 변경
|
|
||||||
RUN chown -R 1000:1000 /usr/local/tomcat
|
|
||||||
|
|
||||||
ENV TZ=Asia/Seoul \
|
ENV TZ=Asia/Seoul \
|
||||||
OTEL_SERVICE_NAME=sayis_service \
|
OTEL_SERVICE_NAME=sayit-helpdesk-service \
|
||||||
OTEL_EXPORTER_OTLP_ENDPOINT=http://192.168.100.203:4317 \
|
OTEL_EXPORTER_OTLP_ENDPOINT=http://192.168.100.203:4317 \
|
||||||
OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
|
OTEL_EXPORTER_OTLP_PROTOCOL=grpc \
|
||||||
OTEL_RESOURCE_ATTRIBUTES="deployment.environment=prod" \
|
OTEL_RESOURCE_ATTRIBUTES="deployment.environment=prod" \
|
||||||
@@ -26,17 +24,21 @@ ENV TZ=Asia/Seoul \
|
|||||||
# 타임존 적용
|
# 타임존 적용
|
||||||
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
|
RUN ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
|
||||||
|
|
||||||
# 에이전트 복사
|
# OTEL 에이전트 복사
|
||||||
COPY --from=otel /opentelemetry-javaagent.jar /opt/opentelemetry-javaagent.jar
|
COPY --from=otel /opentelemetry-javaagent.jar /opt/opentelemetry-javaagent.jar
|
||||||
|
|
||||||
# 기존 앱 제거
|
# 기본 ROOT 앱 제거
|
||||||
RUN rm -rf /usr/local/tomcat/webapps/*
|
RUN rm -rf /usr/local/tomcat/webapps/*
|
||||||
|
|
||||||
# Maven 빌드된 WAR 복사 (target/sayis.war 기준)
|
# Maven이 생성한 실제 WAR 파일 복사
|
||||||
COPY target/sayis.war /usr/local/tomcat/webapps/ROOT.war
|
# *** 핵심: 이름이 sayit-helpdesk.war 임 ***
|
||||||
|
COPY target/sayit-helpdesk.war /usr/local/tomcat/webapps/ROOT.war
|
||||||
|
|
||||||
# 이후부터는 1000:1000 계정으로 동작
|
# 소유권 맞추기 (컨테이너 실행 사용자 job 기준)
|
||||||
USER 1000:1000
|
RUN chown -R 1000:1000 /usr/local/tomcat
|
||||||
|
|
||||||
|
# 컨테이너 실행 사용자 변경
|
||||||
|
USER job
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
CMD ["catalina.sh","run"]
|
CMD ["catalina.sh", "run"]
|
||||||
Reference in New Issue
Block a user