Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
1320b38
Merge pull request #119 from News-Deliver/hoxfix/cron
moonjun1 Jul 21, 2025
cc0778c
Merge pull request #121 from News-Deliver/hoxfix/cron
moonjun1 Jul 21, 2025
5a8c37e
Merge pull request #125 from News-Deliver/dev
moonjun1 Jul 22, 2025
db3c517
πŸ› [버그 μˆ˜μ •] & ⚑️[μ„±λŠ₯ ν–₯상] : Setting 객체 μ €μž₯ μ‹œ μ˜μ†μ„± 문제 ν•΄κ²° & νŽ˜μ΄μ§€λ„€μ΄μ…˜ λ°˜ν™˜ DTO μˆ˜μ •
moonjun1 Jul 22, 2025
e61ec7a
πŸ’‘ λ¦¬λ‹€μ΄λ ‰νŠΈ: ν”„λ‘ νŠΈμ—”λ“œλ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈν•  URL μˆ˜μ •
moonjun1 Jul 22, 2025
673991d
πŸ’‘ λ¦¬λ‹€μ΄λ ‰νŠΈ: ν”„λ‘ νŠΈμ—”λ“œλ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈν•  URL μˆ˜μ •
moonjun1 Jul 22, 2025
f49cb0c
πŸ’‘ λ¦¬λ‹€μ΄λ ‰νŠΈ: ν”„λ‘ νŠΈμ—”λ“œλ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈν•  URL μˆ˜μ •
moonjun1 Jul 22, 2025
f89ca4f
πŸ’‘ λ¦¬λ‹€μ΄λ ‰νŠΈ: ν”„λ‘ νŠΈμ—”λ“œλ‘œ λ¦¬λ‹€μ΄λ ‰νŠΈν•  URL μˆ˜μ •
moonjun1 Jul 22, 2025
5eebcc9
♻️[λ¦¬νŒ©ν† λ§] : ν…ŒμŠ€νŠΈ 컨트둀러 μ—”λ“œν¬μΈνŠΈ λ³€κ²½
moonjun1 Jul 22, 2025
0f37e15
πŸ› [버그 μˆ˜μ •] : 2개 μ΄μƒμ˜ μ„ΈνŒ…κ°’ λͺ¨λ‘ μ μš©ν•˜μ—¬ message sending
moonjun1 Jul 22, 2025
f7090e0
πŸ’‘ μ—˜λΌμŠ€ν‹± μ„œμΉ˜: κΈ°μ‘΄ 인덱슀 μœ μ§€ λ³Όλ₯¨ μΆ”κ°€
moonjun1 Jul 22, 2025
90d9f75
πŸ’‘ μ—˜λΌμŠ€ν‹± μ„œμΉ˜: κΈ°μ‘΄ 인덱슀 μœ μ§€ λ³Όλ₯¨ μΆ”κ°€
moonjun1 Jul 22, 2025
9414c63
πŸ’‘ μ—˜λΌμŠ€ν‹± μ„œμΉ˜: κΈ°μ‘΄ 인덱슀 μœ μ§€ λ³Όλ₯¨ μΆ”κ°€
moonjun1 Jul 22, 2025
46becbf
πŸ’‘ μ—˜λΌμŠ€ν‹± μ„œμΉ˜: κΈ°μ‘΄ 인덱슀 μœ μ§€ λ³Όλ₯¨ μΆ”κ°€
moonjun1 Jul 22, 2025
1777dac
πŸ’‘ μ—˜λΌμŠ€ν‹± μ„œμΉ˜: κΈ°μ‘΄ 인덱슀 μœ μ§€ λ³Όλ₯¨ μΆ”κ°€
moonjun1 Jul 22, 2025
7c607f5
πŸ’‘ μ—˜λΌμŠ€ν‹± μ„œμΉ˜: κΈ°μ‘΄ 인덱슀 μœ μ§€ λ³Όλ₯¨ μΆ”κ°€
moonjun1 Jul 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 78 additions & 8 deletions .github/workflows/deploy-prod.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: ν”„λ‘œλ•μ…˜ 배포 (HTTPS λŒ€μ‘)
name: ν”„λ‘œλ•μ…˜ 배포 (HTTPS λŒ€μ‘) - λ³Όλ₯¨ 보쑴

on:
push:
Expand Down Expand Up @@ -42,17 +42,60 @@ jobs:
exit 1
fi

# κΈ°μ‘΄ μ»¨ν…Œμ΄λ„ˆ 정리
# βœ… λ³Όλ₯¨ μƒνƒœ 확인 (배포 μ „)
echo "πŸ“Š 배포 μ „ λ³Όλ₯¨ μƒνƒœ:"
docker volume ls | grep -E "(es-data|redis|mysql)" || echo "μ€‘μš” λ³Όλ₯¨μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€"

# βœ… μ•ˆμ „ν•œ μ»¨ν…Œμ΄λ„ˆ 정리 (λ³Όλ₯¨ 보쑴)
echo "🧹 κΈ°μ‘΄ μ»¨ν…Œμ΄λ„ˆ 정리 쀑 (λ³Όλ₯¨μ€ μ•ˆμ „ν•˜κ²Œ 보쑴)..."
docker-compose down --remove-orphans --timeout 30 || true
docker system prune -f || true

# βœ… 선택적 정리 (λ³Όλ₯¨μ€ μ ˆλŒ€ κ±΄λ“œλ¦¬μ§€ μ•ŠμŒ)
echo "πŸ—‘οΈ λΆˆν•„μš”ν•œ λ¦¬μ†ŒμŠ€λ§Œ 선별 정리..."
docker container prune -f || true # μ •μ§€λœ μ»¨ν…Œμ΄λ„ˆλ§Œ μ‚­μ œ
docker image prune -f || true # λŒ•κΈ€λ§ μ΄λ―Έμ§€λ§Œ μ‚­μ œ
docker network prune -f || true # μ‚¬μš©μ•ˆν•˜λŠ” λ„€νŠΈμ›Œν¬λ§Œ μ‚­μ œ

# ❌ docker system prune -f μ™„μ „ 제거! (λ³Όλ₯¨ μ‚­μ œμ˜ μ£Όλ²”)
# 이전: docker system prune -f || true ← 이 λͺ…λ Ήμ–΄κ°€ λ³Όλ₯¨μ„ μ‚­μ œν–ˆμŒ

# βœ… 정리 ν›„ λ³Όλ₯¨ μƒνƒœ μž¬ν™•μΈ
echo "πŸ“Š 정리 ν›„ λ³Όλ₯¨ μƒνƒœ (λ³΄μ‘΄λ˜μ–΄μ•Ό 함):"
docker volume ls | grep -E "(es-data|redis|mysql)" || echo "⚠️ μ€‘μš” λ³Όλ₯¨μ΄ μ‚¬λΌμ‘ŒμŠ΅λ‹ˆλ‹€!"

# βœ… ν•„μš”ν•œ λ³Όλ₯¨ 생성 (μ—†λŠ” 경우만)
echo "πŸ”§ ν•„μš”ν•œ λ³Όλ₯¨ 확인 및 생성..."
docker volume create news-deliver_redis-cache-data 2>/dev/null || echo "redis-cache-data λ³Όλ₯¨ 이미 쑴재"
docker volume create news-deliver_es-plugins 2>/dev/null || echo "es-plugins λ³Όλ₯¨ 이미 쑴재"

# μƒˆ μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘
docker-compose up -d --build --force-recreate
echo "πŸš€ μƒˆ μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘ 쀑 (κΈ°μ‘΄ λ³Όλ₯¨ μž¬μ‚¬μš©)..."
docker-compose up -d --build

echo "⏳ μ»¨ν…Œμ΄λ„ˆ μ‹œμž‘ λŒ€κΈ° (90초)..."
sleep 90

echo "πŸŽ‰ 배포 슀크립트 μ™„λ£Œ"
# βœ… μ—˜λΌμŠ€ν‹±μ„œμΉ˜ ν”ŒλŸ¬κ·ΈμΈ 확인 및 μžλ™ μ„€μΉ˜
echo "πŸ” Elasticsearch ν”ŒλŸ¬κ·ΈμΈ μƒνƒœ 확인..."
if ! docker exec elasticsearch bin/elasticsearch-plugin list 2>/dev/null | grep -q "analysis-nori"; then
echo "πŸ“¦ Nori ν”ŒλŸ¬κ·ΈμΈμ΄ μ—†μŠ΅λ‹ˆλ‹€. μ„€μΉ˜ 쀑..."
docker exec elasticsearch bin/elasticsearch-plugin install analysis-nori || echo "ν”ŒλŸ¬κ·ΈμΈ μ„€μΉ˜ μ‹€νŒ¨"
echo "πŸ”„ Elasticsearch μž¬μ‹œμž‘..."
docker restart elasticsearch
sleep 30
else
echo "βœ… Nori ν”ŒλŸ¬κ·ΈμΈμ΄ 이미 μ„€μΉ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€"
fi

# βœ… μ—˜λΌμŠ€ν‹±μ„œμΉ˜ μƒνƒœ 확인
echo "πŸ“Š Elasticsearch ν΄λŸ¬μŠ€ν„° μƒνƒœ:"
docker exec elasticsearch curl -s "localhost:9200/_cluster/health?pretty" | head -10 || echo "ES μƒνƒœ 확인 μ‹€νŒ¨"

# βœ… 인덱슀 μƒνƒœ 확인
echo "πŸ“‘ 인덱슀 μƒνƒœ 확인:"
docker exec elasticsearch curl -s "localhost:9200/_cat/indices?v" || echo "인덱슀 λͺ©λ‘ 쑰회 μ‹€νŒ¨"

echo "πŸŽ‰ 배포 슀크립트 μ™„λ£Œ (λ³Όλ₯¨ 보쑴됨)"
'

- name: μ»¨ν…Œμ΄λ„ˆ μƒνƒœ 확인
Expand All @@ -64,6 +107,9 @@ jobs:
echo "=== Docker μ»¨ν…Œμ΄λ„ˆ μƒνƒœ ==="
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

echo "=== λ³Όλ₯¨ μƒνƒœ (μ€‘μš”!) ==="
docker volume ls | grep -E "(es-data|redis|mysql)" || echo "⚠️ μ€‘μš” λ³Όλ₯¨μ΄ μ—†μŠ΅λ‹ˆλ‹€"

echo "=== Spring Boot μ»¨ν…Œμ΄λ„ˆ 둜그 (졜근 30쀄) ==="
SPRINGBOOT_CONTAINER=$(docker ps -q --filter "name=springboot")
if [ ! -z "$SPRINGBOOT_CONTAINER" ]; then
Expand All @@ -76,20 +122,28 @@ jobs:
# MySQL 확인
if docker ps | grep -q mysql; then
echo "βœ… MySQL μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ 쀑"
docker exec mysql mysqladmin ping 2>/dev/null && echo " πŸ’Ύ MySQL μ—°κ²° 정상" || echo " ❌ MySQL μ—°κ²° μ‹€νŒ¨"
else
echo "❌ MySQL μ»¨ν…Œμ΄λ„ˆ μ—†μŒ"
fi

# Redis 확인
if docker ps | grep -q redis; then
echo "βœ… Redis μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ 쀑"
docker exec redis-cache redis-cli ping 2>/dev/null && echo " πŸ’Ύ Redis Cache μ—°κ²° 정상" || echo " ❌ Redis Cache μ—°κ²° μ‹€νŒ¨"
else
echo "❌ Redis μ»¨ν…Œμ΄λ„ˆ μ—†μŒ"
fi

# Elasticsearch 확인
if docker ps | grep -q elasticsearch; then
echo "βœ… Elasticsearch μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰ 쀑"
echo "πŸ“Š Elasticsearch ν΄λŸ¬μŠ€ν„° μƒνƒœ:"
docker exec elasticsearch curl -s -X GET "localhost:9200/_cluster/health?pretty" | head -10 || echo "ES μƒνƒœ 확인 μ‹€νŒ¨"
echo "πŸ“‘ 인덱슀 λͺ©λ‘:"
docker exec elasticsearch curl -s -X GET "localhost:9200/_cat/indices?v" || echo "인덱슀 λͺ©λ‘ 쑰회 μ‹€νŒ¨"
echo "πŸ”Œ μ„€μΉ˜λœ ν”ŒλŸ¬κ·ΈμΈ:"
docker exec elasticsearch bin/elasticsearch-plugin list 2>/dev/null | grep nori && echo " βœ… Nori ν”ŒλŸ¬κ·ΈμΈ μ„€μΉ˜λ¨" || echo " ❌ Nori ν”ŒλŸ¬κ·ΈμΈ μ—†μŒ"
else
echo "❌ Elasticsearch μ»¨ν…Œμ΄λ„ˆ μ—†μŒ"
fi
Expand All @@ -110,6 +164,10 @@ jobs:
# ν˜ΈμŠ€νŠΈμ—μ„œ μ»¨ν…Œμ΄λ„ˆλ‘œ μ ‘κ·Ό ν…ŒμŠ€νŠΈ
echo "ν˜ΈμŠ€νŠΈμ—μ„œ μ»¨ν…Œμ΄λ„ˆ μ ‘κ·Ό ν…ŒμŠ€νŠΈ:"
curl -f http://localhost:8080/api/auth/status 2>/dev/null && echo "βœ… 호슀트->μ»¨ν…Œμ΄λ„ˆ 정상" || echo "❌ 호슀트->μ»¨ν…Œμ΄λ„ˆ μ‹€νŒ¨"

# βœ… HotTopic API ν…ŒμŠ€νŠΈ (ElasticSearch 의쑴)
echo "HotTopic API ν…ŒμŠ€νŠΈ (ElasticSearch μ˜μ‘΄μ„±):"
curl -f http://localhost:8080/api/hottopic 2>/dev/null && echo "βœ… HotTopic API 정상 (ES 인덱슀 μœ μ§€λ¨)" || echo "❌ HotTopic API μ‹€νŒ¨ (ES 문제 κ°€λŠ₯μ„±)"
'

- name: μ΅œμ’… HTTPS ν—¬μŠ€μ²΄ν¬
Expand All @@ -123,7 +181,7 @@ jobs:
echo "πŸ”„ μ‹œλ„ $attempt/5"

# HTTPS λ„λ©”μΈμœΌλ‘œ ν…ŒμŠ€νŠΈ
endpoints=("/api/auth/status" "/swagger.html")
endpoints=("/api/auth/status" "/api/hottopic" "/swagger.html")

for endpoint in "${endpoints[@]}"; do
url="${api_domain}${endpoint}"
Expand All @@ -137,6 +195,9 @@ jobs:

if [ "$http_code" = "200" ]; then
echo " βœ… $endpoint 성곡!"
if [ "$endpoint" = "/api/hottopic" ]; then
echo " πŸŽ‰ ElasticSearch μΈλ±μŠ€κ°€ μ •μƒμ μœΌλ‘œ μœ μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€!"
fi
success=true
break 2
elif [ "$http_code" = "404" ]; then
Expand All @@ -159,30 +220,39 @@ jobs:
echo "πŸ”— API μ„œλΉ„μŠ€: https://api.likelionnews.click"
echo "πŸ“‹ API λ¬Έμ„œ: https://api.likelionnews.click/swagger.html"
echo "🩺 μƒνƒœ 확인: https://api.likelionnews.click/api/auth/status"
echo "πŸ”₯ ν•«ν† ν”½: https://api.likelionnews.click/api/hottopic"
else
echo "⚠️ HTTPS ν—¬μŠ€μ²΄ν¬ μ‹€νŒ¨"
echo "πŸ”§ 확인사항:"
echo " - Route53μ—μ„œ api.likelionnews.click이 ALBλ₯Ό κ°€λ¦¬ν‚€λŠ”μ§€ 확인"
echo " - ALB에 SSL μΈμ¦μ„œκ°€ 정상 μ—°κ²°λ˜μ—ˆλŠ”μ§€ 확인"
echo " - ALB Target Group이 healthy μƒνƒœμΈμ§€ 확인"
echo " - EC2 Security Groupμ—μ„œ ALB β†’ EC2:8080 ν—ˆμš©λ˜μ—ˆλŠ”μ§€ 확인"
echo " - Elasticsearch ν΄λŸ¬μŠ€ν„° μƒνƒœ 및 인덱슀 확인"
echo " - Nori ν”ŒλŸ¬κ·ΈμΈ μ„€μΉ˜ μƒνƒœ 확인"
fi

- name: 배포 μš”μ•½
if: always()
run: |
echo "## πŸš€ HTTPS 배포 μš”μ•½" >> $GITHUB_STEP_SUMMARY
echo "## πŸš€ HTTPS 배포 μš”μ•½ - λ³Όλ₯¨ 보쑴 버전" >> $GITHUB_STEP_SUMMARY
echo "- **μƒνƒœ**: ${{ job.status }}" >> $GITHUB_STEP_SUMMARY
echo "- **μ‹œκ°„**: $(date)" >> $GITHUB_STEP_SUMMARY
echo "- **브랜치**: ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY
echo "- **λ³Όλ₯¨**: πŸ›‘οΈ 보쑴됨 (docker system prune 제거)" >> $GITHUB_STEP_SUMMARY
echo "- **ElasticSearch**: πŸ“Š 인덱슀 및 Nori ν”ŒλŸ¬κ·ΈμΈ μžλ™ 관리" >> $GITHUB_STEP_SUMMARY
echo "- **Redis**: πŸ’Ύ μΊμ‹œ 데이터 영ꡬ 보쑴" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### πŸ”— HTTPS 링크듀:" >> $GITHUB_STEP_SUMMARY
echo "- **API μ„œλΉ„μŠ€**: https://api.likelionnews.click" >> $GITHUB_STEP_SUMMARY
echo "- **API λ¬Έμ„œ**: https://api.likelionnews.click/swagger.html" >> $GITHUB_STEP_SUMMARY
echo "- **μƒνƒœ 확인**: https://api.likelionnews.click/api/auth/status" >> $GITHUB_STEP_SUMMARY
echo "- **ν•«ν† ν”½**: https://api.likelionnews.click/api/hottopic" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### πŸ›  문제 ν•΄κ²°:" >> $GITHUB_STEP_SUMMARY
echo "1. \`ssh ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }}\`" >> $GITHUB_STEP_SUMMARY
echo "2. \`cd /opt/news-deliver && docker ps\`" >> $GITHUB_STEP_SUMMARY
echo "3. \`docker logs springboot\` (μ»¨ν…Œμ΄λ„ˆλͺ… 확인 ν›„)" >> $GITHUB_STEP_SUMMARY
echo "4. ALB와 Route53 μ„€μ • 확인" >> $GITHUB_STEP_SUMMARY
echo "4. \`docker volume ls | grep -E \"(es-data|redis|mysql)\"\`" >> $GITHUB_STEP_SUMMARY
echo "5. \`docker exec elasticsearch curl localhost:9200/_cat/indices\`" >> $GITHUB_STEP_SUMMARY
echo "6. ALB와 Route53 μ„€μ • 확인" >> $GITHUB_STEP_SUMMARY
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,9 @@ public String getKakaoIdFromToken(String token) {
* @param token 검증할 JWT 토큰 λ¬Έμžμ—΄
* @return 토큰 μœ νš¨μ„± μ—¬λΆ€ (true: 유효, false: 무효)
*/



public boolean validateToken(String token) {
try {
parseClaims(token);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ private String createRedirectUrl(String accessToken, String refreshToken, User u
"kakaoId", user.getKakaoId()
));


String tokenJson = objectMapper.writeValueAsString(tokenData);
String encodedToken = java.net.URLEncoder.encode(tokenJson, "UTF-8");

Expand Down
80 changes: 66 additions & 14 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ services:
context: ./SpringBoot
dockerfile: Dockerfile
container_name: springboot

logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
compress: "true"
environment:
- TZ=Asia/Seoul
- SPRING_PROFILES_ACTIVE=dev
Expand All @@ -25,6 +32,9 @@ services:
- DEEPSEARCH_API_KEY=${DEEPSEARCH_API_KEY}
- ELASTICSEARCH_SERVER=${ELASTICSEARCH_SERVER}
- ELASTICSEARCH_PORT=${ELASTICSEARCH_PORT}
- BASE_URL=${BASE_URL}
- BACKEND_DOMAIN=${BACKEND_DOMAIN}
- FRONTEND_DOMAIN=${FRONTEND_DOMAIN}
ports:
- "8080:8080"
volumes:
Expand All @@ -45,12 +55,15 @@ services:
mysql:
image: mysql:8.0
container_name: mysql
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
environment:
- TZ=Asia/Seoul
- MYSQL_ROOT_PASSWORD=${DB_PASS}
- MYSQL_DATABASE=backendDB
#- MYSQL_USER=${DB_USER}
#- MYSQL_PASSWORD=${DB_PASS}
command: ["mysqld", "--default-time-zone=+09:00"]
ports:
- "3306:3306"
Expand All @@ -66,14 +79,21 @@ services:
networks:
- backend


redis-cache:
image: redis:7.2
container_name: redis-cache
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "2"
environment:
- TZ=Asia/Seoul
ports:
- "6379:6379"
volumes:
- redis-cache-data:/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
Expand All @@ -82,6 +102,11 @@ services:
redis-session1:
image: redis:7.2
container_name: redis-session1
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "2"
command: redis-server /usr/local/etc/redis/redis.conf
environment:
- TZ=Asia/Seoul
Expand All @@ -98,6 +123,11 @@ services:
redis-session2:
image: redis:7.2
container_name: redis-session2
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "2"
command: redis-server /usr/local/etc/redis/redis.conf
environment:
- TZ=Asia/Seoul
Expand All @@ -114,6 +144,11 @@ services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.13.0
container_name: elasticsearch
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
environment:
- TZ=Asia/Seoul
- discovery.type=single-node
Expand All @@ -128,12 +163,18 @@ services:
volumes:
- ./ElasticSearch/stopwords.txt:/usr/share/elasticsearch/config/stopwords.txt
- es-data:/usr/share/elasticsearch/data
- es-plugins:/usr/share/elasticsearch/plugins
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro

prometheus:
image: prom/prometheus:latest
container_name: prometheus
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "2"
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus-data:/prometheus
Expand All @@ -145,28 +186,26 @@ services:
grafana:
image: grafana/grafana:latest
container_name: grafana
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "2"
ports:
- "3000:3000"
networks:
- backend
volumes:
- grafana-data:/var/lib/grafana

# mysqld-exporter:
# image: prom/mysqld-exporter:latest
# container_name: mysqld-exporter
# environment:
# - DATA_SOURCE_NAME=root:1234@(mysql:3306)/
# ports:
# - "9104:9104"
# depends_on:
# - mysql
# networks:
# - backend

redis-exporter:
image: oliver006/redis_exporter
container_name: redis-exporter
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "1"
command:
- '--redis.addr=redis://redis-cache:6379'
ports:
Expand All @@ -179,6 +218,11 @@ services:
redis-session1-exporter:
image: oliver006/redis_exporter
container_name: redis-session1-exporter
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "1"
command:
- '--redis.addr=redis://redis-session1:6379'
ports:
Expand All @@ -189,18 +233,26 @@ services:
redis-session2-exporter:
image: oliver006/redis_exporter
container_name: redis-session2-exporter
logging:
driver: "json-file"
options:
max-size: "5m"
max-file: "1"
command:
- '--redis.addr=redis://redis-session2:6379'
ports:
- "9123:9121"
networks:
- backend


volumes:
mysql-data:
redis-cache-data:
redis-session1-data:
redis-session2-data:
es-data:
es-plugins:
prometheus-data:
grafana-data:

Expand Down