File tree Expand file tree Collapse file tree 10 files changed +216
-16
lines changed
java/com/gucci/alarm_service/controller Expand file tree Collapse file tree 10 files changed +216
-16
lines changed Original file line number Diff line number Diff line change 1- # 테스트 용도
2- FROM eclipse-temurin:17-jdk-alpine
1+ # # 테스트 용도
2+ # FROM eclipse-temurin:17-jdk-alpine
3+ #
4+ # ARG JAR_FILE=build/libs/*.jar
5+ # COPY ${JAR_FILE} app.jar
6+ #
7+ # EXPOSE 8080
8+ #
9+ # ENTRYPOINT ["java", "-jar", "/app.jar"]
310
4- ARG JAR_FILE=build/libs/*.jar
5- COPY ${JAR_FILE} app.jar
11+ # 1단계: 빌드 스테이지
12+ # 1단계: 빌드 스테이지
13+ FROM --platform=linux/amd64 gradle:8.5.0-jdk17 AS builder
614
7- EXPOSE 8080
15+ WORKDIR /app
816
9- ENTRYPOINT ["java" , "-jar" , "/app.jar" ]
17+ COPY . .
18+
19+ RUN gradle clean build -x test
20+
21+ # 2단계: 실행 스테이지
22+ FROM --platform=linux/amd64 eclipse-temurin:17-jdk
23+
24+ WORKDIR /app
25+
26+ COPY --from=builder /app/build/libs/*.jar app.jar
27+
28+ ENTRYPOINT ["java" , "-jar" , "/app/app.jar" ]
Original file line number Diff line number Diff line change 1+ spring :
2+ datasource :
3+ url : ${LOCAL_DB_URL}
4+ username : ${LOCAL_DB_USERNAME}
5+ password : ${LOCAL_DB_PASSWORD}
6+
7+ jpa :
8+ hibernate :
9+ ddl-auto : update
10+
11+ kafka :
12+ bootstrap-servers : localhost:9092
13+ consumer :
14+ group-id : alarm-group
15+ auto-offset-reset : earliest
16+ key-deserializer : org.apache.kafka.common.serialization.StringDeserializer
17+ value-deserializer : org.springframework.kafka.support.serializer.JsonDeserializer
18+ properties :
19+ spring.json.trusted.packages : " *"
20+ producer :
21+ key-serializer : org.apache.kafka.common.serialization.StringSerializer
22+ value-serializer : org.springframework.kafka.support.serializer.JsonSerializer
23+ topic :
24+ notification : alarm-topic
25+
26+
27+ jwt :
28+ secret : ${JWT_SECRET}
29+
30+
31+ management :
32+ endpoints :
33+ web :
34+ exposure :
35+ include : health, info, prometheus
36+
37+ prometheus :
38+ metrics :
39+ export :
40+ enabled : true
Original file line number Diff line number Diff line change 1+ spring :
2+ datasource :
3+ url : ${PROD_DB_URL}
4+ username : ${PROD_DB_USERNAME}
5+ password : ${PROD_DB_PASSWORD}
6+
7+ jpa :
8+ hibernate :
9+ ddl-auto : update
10+
11+ kafka :
12+ bootstrap-servers : kafka:29092
13+ consumer :
14+ group-id : alarm-group
15+ auto-offset-reset : earliest
16+ key-deserializer : org.apache.kafka.common.serialization.StringDeserializer
17+ value-deserializer : org.springframework.kafka.support.serializer.JsonDeserializer
18+ properties :
19+ spring.json.trusted.packages : " *"
20+ producer :
21+ key-serializer : org.apache.kafka.common.serialization.StringSerializer
22+ value-serializer : org.springframework.kafka.support.serializer.JsonSerializer
23+ topic :
24+ notification : alarm-topic
25+
26+
27+ jwt :
28+ secret : ${JWT_SECRET}
29+
30+
31+ management :
32+ endpoints :
33+ web :
34+ exposure :
35+ include : health, info, prometheus
36+
37+ prometheus :
38+ metrics :
39+ export :
40+ enabled : true
Original file line number Diff line number Diff line change 11spring :
2- datasource :
3- url : ${LOCAL_DB_URL}
4- username : ${LOCAL_DB_USERNAME}
5- password : ${LOCAL_DB_PASSWORD}
6-
7- jpa :
8- hibernate :
9- ddl-auto : update
2+ profiles :
3+ active : cloud
4+ application :
5+ name : alarm-service
6+ config :
7+ import : " optional:configserver:"
8+ cloud :
9+ config :
10+ uri : http://config-service.config.svc.cluster.local:8888
11+ name : alarm-service
12+ label : main
13+ fail-fast : true
14+ server :
15+ port : 8087
Original file line number Diff line number Diff line change 1+ <configuration >
2+
3+ <appender name =" JSON_CONSOLE" class =" ch.qos.logback.core.ConsoleAppender" >
4+ <encoder class =" net.logstash.logback.encoder.LogstashEncoder" />
5+ </appender >
6+
7+ <root level =" INFO" >
8+ <appender-ref ref =" JSON_CONSOLE" />
9+ </root >
10+
11+ </configuration >
Original file line number Diff line number Diff line change 1+ spring :
2+ datasource :
3+ url : jdbc:h2:mem:testdb;MODE=PostgreSQL
4+ driver-class-name : org.h2.Driver
5+ username : sa
6+ password :
7+
8+ jpa :
9+ hibernate :
10+ ddl-auto : create-drop
11+ show-sql : true
12+ properties :
13+ hibernate :
14+ format_sql : true
15+
16+ kafka :
17+ bootstrap-servers : dummy:9092 # 테스트에서는 실제 브로커 사용 안 함
18+ consumer :
19+ group-id : test-group
20+ auto-offset-reset : earliest
21+ key-deserializer : org.apache.kafka.common.serialization.StringDeserializer
22+ value-deserializer : org.apache.kafka.common.serialization.StringDeserializer
23+ producer :
24+ key-serializer : org.apache.kafka.common.serialization.StringSerializer
25+ value-serializer : org.apache.kafka.common.serialization.StringSerializer
26+ topic :
27+ notification : test-alarm-topic
28+
29+ logging :
30+ level :
31+ org.hibernate.SQL : debug
32+
33+
34+
35+ jwt :
36+ secret : ${JWT_SECRET}
Original file line number Diff line number Diff line change @@ -4,6 +4,10 @@ plugins {
44 id ' io.spring.dependency-management' version ' 1.1.7'
55}
66
7+ ext {
8+ springCloudVersion = " 2024.0.1"
9+ }
10+
711group = ' com.gucci'
812version = ' 0.0.1-SNAPSHOT'
913
@@ -22,6 +26,7 @@ configurations {
2226dependencies {
2327 implementation ' org.springframework.boot:spring-boot-starter-data-jpa'
2428 implementation ' org.springframework.boot:spring-boot-starter-web'
29+ implementation ' org.springframework.cloud:spring-cloud-starter-config'
2530 compileOnly ' org.projectlombok:lombok'
2631 developmentOnly ' org.springframework.boot:spring-boot-devtools'
2732 runtimeOnly ' org.postgresql:postgresql'
@@ -45,6 +50,12 @@ dependencies {
4550 implementation ' net.logstash.logback:logstash-logback-encoder:7.4'
4651}
4752
53+ dependencyManagement {
54+ imports {
55+ mavenBom " org.springframework.cloud:spring-cloud-dependencies:$springCloudVersion "
56+ }
57+ }
58+
4859tasks. named(' test' ) {
4960 useJUnitPlatform()
5061}
Original file line number Diff line number Diff line change 1+ package com .gucci .alarm_service .controller ;
2+
3+ import lombok .RequiredArgsConstructor ;
4+ import org .springframework .core .env .Environment ;
5+ import org .springframework .http .HttpStatus ;
6+ import org .springframework .http .ResponseEntity ;
7+ import org .springframework .web .bind .annotation .GetMapping ;
8+ import org .springframework .web .bind .annotation .RequestMapping ;
9+ import org .springframework .web .bind .annotation .RestController ;
10+
11+ @ RestController
12+ @ RequestMapping ("/api/alarm-service" )
13+ @ RequiredArgsConstructor
14+ public class HealthCheckController {
15+ private final Environment environment ;
16+
17+ @ GetMapping ("/health-check" )
18+ public ResponseEntity <String > healthCheck () {
19+ return ResponseEntity .status (HttpStatus .OK )
20+ .body (
21+ "Alarm Service is running on port: "
22+ + environment .getProperty ("local.server.port" )
23+ );
24+ }
25+ }
Original file line number Diff line number Diff line change 11spring :
22 profiles :
3- active : dev
3+ active : cloud
4+ application :
5+ name : alarm-service
6+ config :
7+ import : " optional:configserver:"
8+ cloud :
9+ config :
10+ uri : http://config-service.config.svc.cluster.local:8888
11+ name : alarm-service
12+ label : main
13+ fail-fast : true
14+ server :
15+ port : 8087
You can’t perform that action at this time.
0 commit comments