smarteye-backend / docker-compose.yml
AkJeond's picture
feat(docker): MySQL μ΄ˆκΈ°ν™” μžλ™ν™” 및 DB 리셋 슀크립트 κ°œμ„ 
fdd1575
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: smart_mysql
restart: unless-stopped
# ν™˜κ²½ λ³€μˆ˜
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-1q2w3e4r}
MYSQL_DATABASE: ${MYSQL_DATABASE:-smarteyessen_db}
# 선택적: μΆ”κ°€ μ‚¬μš©μž 생성
# MYSQL_USER: smarteye_user
# MYSQL_PASSWORD: smarteye_pass
# 포트 λ§€ν•‘
ports:
- "${MYSQL_PORT:-3308}:3306"
# MySQL μ„œλ²„ μ„€μ • (UTF-8 κ°•μ œ)
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-authentication-plugin=mysql_native_password
- --max-connections=200
- --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 데이터 지속성 (Named Volume μ‚¬μš©)
volumes:
- smart_mysql_data:/var/lib/mysql
# μ΄ˆκΈ°ν™” 슀크립트 (μ»¨ν…Œμ΄λ„ˆ 졜초 μ‹€ν–‰ μ‹œ μžλ™ μ‹€ν–‰)
- ./scripts/init_db_complete.sql:/docker-entrypoint-initdb.d/01_init.sql:ro
# ν—¬μŠ€μ²΄ν¬
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p1q2w3e4r"]
interval: 10s
timeout: 5s
retries: 5
# λ„€νŠΈμ›Œν¬
networks:
- smarteye_network
# Named Volume μ •μ˜
volumes:
smart_mysql_data:
name: smart_mysql_data
driver: local
# λ„€νŠΈμ›Œν¬ μ •μ˜
networks:
smarteye_network:
name: smarteye_network
driver: bridge