AkJeond commited on
Commit
d511249
·
1 Parent(s): 2c59ac2

fix: Dockerfile LOCALE 설정 및 database.py 인코딩 강화 (한글 문제 완전 해결)

Browse files
Files changed (2) hide show
  1. Dockerfile +9 -0
  2. app/database.py +6 -2
Dockerfile CHANGED
@@ -46,8 +46,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
46
  tesseract-ocr-eng \
47
  libgl1 \
48
  libglib2.0-0 \
 
49
  && rm -rf /var/lib/apt/lists/*
50
 
 
 
 
 
 
 
 
 
51
  # Copy Python packages from builder
52
  COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
53
  COPY --from=builder /usr/local/bin /usr/local/bin
 
46
  tesseract-ocr-eng \
47
  libgl1 \
48
  libglib2.0-0 \
49
+ locales \
50
  && rm -rf /var/lib/apt/lists/*
51
 
52
+ # Set UTF-8 locale (한글 인코딩 문제 해결)
53
+ RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
54
+ sed -i '/ko_KR.UTF-8/s/^# //g' /etc/locale.gen && \
55
+ locale-gen
56
+ ENV LANG=ko_KR.UTF-8 \
57
+ LANGUAGE=ko_KR:en \
58
+ LC_ALL=ko_KR.UTF-8
59
+
60
  # Copy Python packages from builder
61
  COPY --from=builder /usr/local/lib/python3.9/site-packages /usr/local/lib/python3.9/site-packages
62
  COPY --from=builder /usr/local/bin /usr/local/bin
app/database.py CHANGED
@@ -42,7 +42,7 @@ print(f"🔍 Password loaded: {'Yes' if DB_PASSWORD else 'No'}")
42
  # pymysql 드라이버 사용, charset=utf8mb4 설정
43
  SQLALCHEMY_DATABASE_URL = (
44
  f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
45
- f"?charset=utf8mb4"
46
  )
47
 
48
  # ============================================================================
@@ -57,7 +57,11 @@ engine = create_engine(
57
  pool_recycle=3600, # 1시간마다 연결 재생성
58
  echo=False, # SQL 로그 출력 (개발 시 True로 변경 가능)
59
  # PyMySQL 드라이버에 직접 charset 전달 (한글 인코딩 문제 해결)
60
- connect_args={"charset": "utf8mb4"}
 
 
 
 
61
  )
62
 
63
  # ============================================================================
 
42
  # pymysql 드라이버 사용, charset=utf8mb4 설정
43
  SQLALCHEMY_DATABASE_URL = (
44
  f"mysql+pymysql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
45
+ f"?charset=utf8mb4&use_unicode=1"
46
  )
47
 
48
  # ============================================================================
 
57
  pool_recycle=3600, # 1시간마다 연결 재생성
58
  echo=False, # SQL 로그 출력 (개발 시 True로 변경 가능)
59
  # PyMySQL 드라이버에 직접 charset 전달 (한글 인코딩 문제 해결)
60
+ connect_args={
61
+ "charset": "utf8mb4",
62
+ "use_unicode": True,
63
+ "init_command": "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
64
+ }
65
  )
66
 
67
  # ============================================================================