Skip to content

Latest commit

ย 

History

History
72 lines (54 loc) ยท 2.77 KB

File metadata and controls

72 lines (54 loc) ยท 2.77 KB

SafeView Production - Docker Orchestration

์ด ๋ ˆํฌ๋Š” 3๊ฐœ์˜ ์„œ๋น„์Šค(backend, camera-ai, frontend)์™€ MySQL DB๋ฅผ docker-compose๋กœ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ๊ฐœ์š”

  • backend: Spring Boot (8080)
  • camera-ai: FastAPI (8000)
  • frontend: React(Vite) ์ •์  ๋นŒ๋“œ โ†’ Nginx ์„œ๋น™ (5173 โ†’ ์ปจํ…Œ์ด๋„ˆ 80)
  • db: MySQL 8.0 (3306)

๋„คํŠธ์›Œํฌ: safeview-net

ํผ์‹œ์Šคํ„ด์Šค ๋ณผ๋ฅจ:

  • db_data โ†’ MySQL ๋ฐ์ดํ„ฐ
  • camera_uploads โ†’ AI ์„œ๋ฒ„ ์—…๋กœ๋“œ ํŒŒ์ผ
  • camera_api_results โ†’ AI ์„œ๋ฒ„ ๊ฒฐ๊ณผ ํŒŒ์ผ

๋น ๋ฅธ ์‹œ์ž‘

  1. .env ์ƒ์„ฑ
cp .env.example .env
# ํ•„์š” ์‹œ ๊ฐ’ ์ˆ˜์ • (๋น„๋ฐ€๋ฒˆํ˜ธ/ํ‚ค ๋“ฑ)
  1. ๋นŒ๋“œ ๋ฐ ์‹คํ–‰
docker compose up -d --build
  1. ์ ‘์†
  1. ๋กœ๊ทธ ๋ณด๊ธฐ/์ค‘๋‹จ
docker compose logs -f

docker compose down

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋ฉ”๋ชจ

.env๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์€ docker-compose.yml ๋‚ด ์ฃผ์„ ์ฐธ๊ณ .

  • DB
    • MYSQL_ROOT_PASSWORD / MYSQL_DATABASE / MYSQL_USER / MYSQL_PASSWORD
  • Backend
    • JWT_SECRET
    • AI_SERVER_API_KEY (application.yml์˜ api.internal.ai-server-key ๋กœ ์‚ฌ์šฉ)
    • AI_SERVER_URL โ†’ Spring์˜ ai.server.url ๋กœ ๋งคํ•‘๋˜๋ฉฐ ๊ธฐ๋ณธ๊ฐ’์€ compose์—์„œ http://camera-ai:8000
    • DB ์ ‘์†์€ ๋‚ด๋ถ€์—์„œ jdbc:mysql://db:3306/... ๋กœ ์„ค์ •๋จ
  • Camera-AI
    • BACKEND_API_URL ๊ธฐ๋ณธ http://backend:8080
    • SPRING_MAKE_ENTITY_URL ๊ธฐ๋ณธ http://backend:8080/api/videos/make-entity
    • AI_API_KEY โ†’ Backend์—์„œ ๊ฒ€์ฆ์šฉ ํ‚ค์™€ ์ผ์น˜ ํ•„์š” ์‹œ .env์—์„œ ๋™์ผ ๊ฐ’ ์‚ฌ์šฉ
    • ์„ ํƒ: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, S3_BUCKET_NAME, S3_REGION

ํ”„๋ก ํŠธ์—”๋“œ API ๊ฒฝ๋กœ

ํ˜„์žฌ services/frontend/src/apis/api.ts์—์„œ axios ๊ธฐ๋ณธ baseURL์ด http://localhost:8080/api ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํ‚น๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ์ •์ƒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. (ํ•„์š” ์‹œ .env ๊ธฐ๋ฐ˜ VITE_API_BASE_URL ํ˜•ํƒœ๋กœ ๊ฐœ์„  ๊ฐ€๋Šฅ)

๊ฐœ๋ฐœ ํŒ

  • Backend ํ—ฌ์Šค์ฒดํฌ(Actuator)๋ฅผ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด spring-boot-starter-actuator ์ถ”๊ฐ€ ํ›„ /actuator/health๋ฅผ compose healthcheck๋กœ ์„ค์ •ํ•˜์„ธ์š”.
  • Apple Silicon(arm64)์—์„œ๋„ ๋™์ž‘ํ•˜๋„๋ก ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ์„ ์ •ํ–ˆ์œผ๋‚˜, ์ดˆ๊ธฐ์— Python ํœ  ๋‹ค์šด๋กœ๋“œ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

  • ํฌํŠธ ์ถฉ๋Œ ์‹œ: docker-compose.yml์˜ ports์—์„œ ํ˜ธ์ŠคํŠธ ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜์„ธ์š”.
  • ์นด๋ฉ”๋ผ AI๊ฐ€ ๋ฐฑ์—”๋“œ์— ์ ‘๊ทผ ๋ชปํ•  ๋•Œ: BACKEND_API_URL์ด http://backend:8080์ธ์ง€ ํ™•์ธ.
  • CORS ์—๋Ÿฌ ์‹œ: Backend CORS ์„ค์ •์„ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ํ•„์š” ์‹œ ํ—ˆ์šฉ ๋„๋ฉ”์ธ์— http://localhost:5173 ์ถ”๊ฐ€.