-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
55 lines (45 loc) · 1.69 KB
/
Dockerfile
File metadata and controls
55 lines (45 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 베이스 이미지 선택
FROM python:3.13
# 시스템 라이브러리 설치
RUN apt-get update && \
apt-get install -y --no-install-recommends \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
unzip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Oracle Instant Client 설치
ARG IC_VER_DIR=instantclient_23_9
ARG IC_ZIP=instantclient-basiclite-linux.x64-23.9.0.25.07.zip
COPY docker/instantclient/${IC_ZIP} /tmp/${IC_ZIP}
RUN mkdir -p /opt/oracle \
&& unzip /tmp/${IC_ZIP} -d /opt/oracle \
&& rm /tmp/${IC_ZIP}
# 런타임에서 클라이언트 찾도록 환경변수
ENV LD_LIBRARY_PATH=/opt/oracle/${IC_VER_DIR}
ENV ORACLE_CLIENT_LIB_DIR=/opt/oracle/${IC_VER_DIR}
# .deb 패키지 설치 (추가된 부분)
COPY docker/packages/libaio1_0.3.110-5_amd64.deb /tmp/libaio1_0.3.110-5_amd64.deb
RUN apt-get update && \
apt-get install -y /tmp/libaio1_0.3.110-5_amd64.deb && \
rm /tmp/libaio1_0.3.110-5_amd64.deb
# 작업 디렉토리 설정
WORKDIR /app
# 의존성 파일 복사 및 설치
COPY requirements.txt .
# 의존성 설치 후 문제가 되는 opencv-python을 강제로 삭제
RUN pip install --no-cache-dir --upgrade -r requirements.txt && \
pip uninstall -y opencv-python opencv-python-headless && \
pip install opencv-python-headless==4.12.0.88 && \
pip install --no-cache-dir --upgrade pip setuptools wheel
# 프로젝트 전체 코드 복사
COPY ./app ./app
COPY ./models ./models
# .env 파일 복사
COPY ./.env ./.env
# 컨테이너 내부에서 사용할 포트
EXPOSE 8082
# 컨테이너 시작 명령어
# 0.0.0.0 호스트로 실행해야 외부에서 접근 가능합니다.
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8082"]