Spaces:
Sleeping
Sleeping
fix: Dockerfile LOCALE 설정 및 database.py 인코딩 강화 (한글 문제 완전 해결)
Browse files- Dockerfile +9 -0
- 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={
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
# ============================================================================
|