Skip to content

Commit d7af116

Browse files
authored
[Fix]: Elasticsearch 배포 오류 해결 (#177)
* [Fix]: Elasticsearch 배포 오류 해결 * [Fix]: main.tf 수정 * [Remove]: sh 파일 tracking 제거
1 parent c1c685f commit d7af116

34 files changed

+256
-45
lines changed

.dockerignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
.gradle
88
**/build/
99
!**/build/libs/
10+
**/src/main/generated/
1011

1112
# IDE
1213
.idea

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ k6-tests/results
4444
*.pem
4545
*.key
4646
uploads/
47+
scripts/
4748

4849
### env ###
4950
.env

docker-compose.prodtest.yml

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
version: '3.8'
2+
3+
services:
4+
mysql_1:
5+
image: mysql:8.0
6+
container_name: mysql_1
7+
restart: unless-stopped
8+
environment:
9+
MYSQL_ROOT_PASSWORD: 1234
10+
TZ: Asia/Seoul
11+
volumes:
12+
- mysql_data:/var/lib/mysql
13+
- mysql_config:/etc/mysql/conf.d
14+
networks:
15+
- common
16+
ports:
17+
- "3306:3306"
18+
healthcheck:
19+
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p1234"]
20+
interval: 10s
21+
timeout: 10s
22+
retries: 50
23+
start_period: 80s # ✅ 충분한 초기 대기 시간
24+
command: --default-authentication-plugin=mysql_native_password
25+
26+
mysql_init:
27+
image: mysql:latest
28+
container_name: mysql_init
29+
depends_on:
30+
mysql_1:
31+
condition: service_healthy
32+
networks:
33+
- common
34+
environment:
35+
MYSQL_PWD: 1234
36+
command: >
37+
bash -c "
38+
echo 'MySQL 초기화 시작...'
39+
mysql -h mysql_1 -uroot -p1234 -e \"
40+
CREATE USER IF NOT EXISTS 'lldjlocal'@'127.0.0.1' IDENTIFIED WITH caching_sha2_password BY '1234';
41+
CREATE USER IF NOT EXISTS 'lldjlocal'@'172.18.%.%' IDENTIFIED WITH caching_sha2_password BY '1234';
42+
CREATE USER IF NOT EXISTS 'lldj'@'%' IDENTIFIED WITH caching_sha2_password BY '1234';
43+
GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'127.0.0.1';
44+
GRANT ALL PRIVILEGES ON *.* TO 'lldjlocal'@'172.18.%.%';
45+
GRANT ALL PRIVILEGES ON *.* TO 'lldj'@'%';
46+
CREATE DATABASE IF NOT EXISTS bid_market;
47+
FLUSH PRIVILEGES;
48+
\"
49+
echo 'MySQL 초기화 완료!'
50+
"
51+
52+
redis_1:
53+
image: redis:latest
54+
container_name: redis_1
55+
restart: unless-stopped
56+
command: redis-server --requirepass 1234
57+
environment:
58+
TZ: Asia/Seoul
59+
volumes:
60+
- redis_data:/data
61+
networks:
62+
- common
63+
ports:
64+
- "6379:6379"
65+
healthcheck:
66+
test: ["CMD", "redis-cli", "-a", "1234", "ping"]
67+
interval: 5s
68+
timeout: 3s
69+
retries: 10
70+
71+
elasticsearch_1:
72+
build:
73+
context: .
74+
dockerfile: elasticsearch.Dockerfile
75+
container_name: elasticsearch_1
76+
restart: unless-stopped
77+
environment:
78+
- discovery.type=single-node
79+
- xpack.security.enabled=true
80+
- xpack.security.transport.ssl.enabled=false
81+
- xpack.security.http.ssl.enabled=false
82+
- ELASTIC_PASSWORD=1234
83+
- ES_JAVA_OPTS=-Xms512m -Xmx512m
84+
- TZ=Asia/Seoul
85+
volumes:
86+
- elasticsearch_data:/usr/share/elasticsearch/data
87+
networks:
88+
- common
89+
ports:
90+
- "9200:9200"
91+
healthcheck:
92+
test: ["CMD-SHELL", "curl -s -u elastic:1234 http://localhost:9200/_cluster/health || exit 1"]
93+
interval: 10s
94+
timeout: 5s
95+
retries: 30
96+
97+
app_1:
98+
build:
99+
context: .
100+
dockerfile: Dockerfile
101+
container_name: app_1
102+
restart: unless-stopped
103+
depends_on:
104+
mysql_init:
105+
condition: service_completed_successfully
106+
redis_1:
107+
condition: service_healthy
108+
elasticsearch_1:
109+
condition: service_healthy
110+
environment:
111+
# Spring Boot 설정
112+
- SPRING_PROFILES_ACTIVE=prod
113+
- TZ=Asia/Seoul
114+
115+
# 데이터베이스 설정
116+
- SPRING__DATASOURCE__URL___DB_NAME=bid_market
117+
118+
# Redis 설정
119+
- SPRING__DATA__REDIS__PASSWORD=1234
120+
121+
# JWT 설정
122+
- JWT_SECRET=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6
123+
- JWT_ACCESS_TOKEN_EXPIRATION=30
124+
- JWT_REFRESH_TOKEN_EXPIRATION=7
125+
126+
# PG 설정 (필요시)
127+
- PG_TOSS_CLIENT_KEY=${PG_TOSS_CLIENT_KEY:-test_client_key}
128+
- PG_TOSS_SECRET_KEY=${PG_TOSS_SECRET_KEY:-test_secret_key}
129+
networks:
130+
- common
131+
ports:
132+
- "8080:8080"
133+
volumes:
134+
- app_data:/data
135+
136+
networks:
137+
common:
138+
driver: bridge
139+
140+
volumes:
141+
mysql_data:
142+
mysql_config:
143+
redis_data:
144+
elasticsearch_data:
145+
elasticsearch_config:
146+
app_data:

src/main/java/com/backend/domain/bid/service/BidService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import com.backend.domain.product.entity.Product;
1111
import com.backend.domain.product.enums.AuctionStatus;
1212
import com.backend.domain.product.event.helper.ProductChangeTracker;
13-
import com.backend.domain.product.repository.ProductRepository;
13+
import com.backend.domain.product.repository.jpa.ProductRepository;
1414
import com.backend.global.exception.ServiceException;
1515
import com.backend.global.response.RsData;
1616
import com.backend.global.websocket.service.WebSocketService;

src/main/java/com/backend/domain/product/repository/ProductElasticRepository.java renamed to src/main/java/com/backend/domain/product/repository/elasticsearch/ProductElasticRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.backend.domain.product.repository;
1+
package com.backend.domain.product.repository.elasticsearch;
22

33
import com.backend.domain.product.document.ProductDocument;
44
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

src/main/java/com/backend/domain/product/repository/ProductElasticRepositoryCustom.java renamed to src/main/java/com/backend/domain/product/repository/elasticsearch/ProductElasticRepositoryCustom.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.backend.domain.product.repository;
1+
package com.backend.domain.product.repository.elasticsearch;
22

33
import com.backend.domain.product.document.ProductDocument;
44
import com.backend.domain.product.dto.ProductSearchDto;

src/main/java/com/backend/domain/product/repository/ProductElasticRepositoryImpl.java renamed to src/main/java/com/backend/domain/product/repository/elasticsearch/ProductElasticRepositoryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.backend.domain.product.repository;
1+
package com.backend.domain.product.repository.elasticsearch;
22

33
import co.elastic.clients.elasticsearch._types.FieldValue;
44
import co.elastic.clients.elasticsearch._types.SortOptions;

src/main/java/com/backend/domain/product/repository/ProductImageRepository.java renamed to src/main/java/com/backend/domain/product/repository/jpa/ProductImageRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.backend.domain.product.repository;
1+
package com.backend.domain.product.repository.jpa;
22

33
import com.backend.domain.product.entity.ProductImage;
44
import org.springframework.data.jpa.repository.JpaRepository;

src/main/java/com/backend/domain/product/repository/ProductRepository.java renamed to src/main/java/com/backend/domain/product/repository/jpa/ProductRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.backend.domain.product.repository;
1+
package com.backend.domain.product.repository.jpa;
22

33
import com.backend.domain.product.entity.Product;
44
import org.springframework.data.jpa.repository.JpaRepository;

src/main/java/com/backend/domain/product/repository/ProductRepositoryCustom.java renamed to src/main/java/com/backend/domain/product/repository/jpa/ProductRepositoryCustom.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.backend.domain.product.repository;
1+
package com.backend.domain.product.repository.jpa;
22

33
import com.backend.domain.product.dto.ProductSearchDto;
44
import com.backend.domain.product.entity.Product;

0 commit comments

Comments
 (0)