feat(deploy): RTGS 3센터 컨테이너 배포 산출물
- Dockerfile.backend: 7서비스 공용 이미지(멀티스테이지 gradle 빌드, SERVICE env 선택, curl 포함) - docker-compose.yml: PG(3DB)+Kafka+순번기+DC1/DC2/DC3 각6서비스+프론트, 컨테이너 격리로 포트오프셋 불필요, depends_on 헬스 순서 - Dockerfile.frontend+nginx.conf: 콘솔+DT 정적빌드→nginx 서빙+API 리버스프록시(X-RTGS-DC 헤더/dcN 경로 센터 라우팅) - init/init-3centers.sql, .dockerignore, README(Coder 런북 + Coolify 어댑테이션/정책 경고) - vite.config: 배포 빌드에 dt.html 엔트리 추가(콘솔+DT 한번에) 빌드/기동 검증은 Coder(podman)에서 — 로컬 PC는 Docker 미지원. 프론트 build·compose 구조는 로컬 정적 검증 완료. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
31
deploy/Dockerfile.backend
Normal file
31
deploy/Dockerfile.backend
Normal file
@@ -0,0 +1,31 @@
|
||||
# RTGS 백엔드 공용 이미지 — 7개 서비스(sequencer/chanel/dior/hermes/prada/gucci/louisvuitton) 하나로.
|
||||
# 실행 서비스는 SERVICE env로 선택. 포트/DB/센터/Kafka는 전부 env 주입(compose에서 지정).
|
||||
# ── build: gradlew로 fat jar 빌드(JDK21). runtime: JRE + curl(헬스체크).
|
||||
|
||||
# ---------- build ----------
|
||||
FROM eclipse-temurin:21-jdk AS build
|
||||
WORKDIR /src
|
||||
COPY backend/ ./
|
||||
# 오프라인 캐시락 회피 위해 --no-build-cache. 의존성은 최초 1회 네트워크 다운로드.
|
||||
RUN chmod +x gradlew && ./gradlew --no-daemon --no-build-cache \
|
||||
:sequencer:bootJar :chanel:bootJar :dior:bootJar :hermes:bootJar \
|
||||
:prada:bootJar :gucci:bootJar :louisvuitton:bootJar
|
||||
|
||||
# ---------- runtime ----------
|
||||
FROM eclipse-temurin:21-jre AS runtime
|
||||
WORKDIR /app
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends curl ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
# 7개 fat jar를 /app/<svc>.jar 로 복사
|
||||
COPY --from=build /src/sequencer/build/libs/sequencer-0.1.0.jar /app/sequencer.jar
|
||||
COPY --from=build /src/chanel/build/libs/chanel-0.1.0.jar /app/chanel.jar
|
||||
COPY --from=build /src/dior/build/libs/dior-0.1.0.jar /app/dior.jar
|
||||
COPY --from=build /src/hermes/build/libs/hermes-0.1.0.jar /app/hermes.jar
|
||||
COPY --from=build /src/prada/build/libs/prada-0.1.0.jar /app/prada.jar
|
||||
COPY --from=build /src/gucci/build/libs/gucci-0.1.0.jar /app/gucci.jar
|
||||
COPY --from=build /src/louisvuitton/build/libs/louisvuitton-0.1.0.jar /app/louisvuitton.jar
|
||||
|
||||
# SERVICE=chanel 등으로 실행 서비스 선택. SERVER_PORT는 Spring relaxed-binding으로 server.port에 매핑.
|
||||
ENV SERVICE=chanel
|
||||
ENTRYPOINT ["sh","-c","exec java -jar /app/${SERVICE}.jar"]
|
||||
Reference in New Issue
Block a user