|
1 | | -# bookworm으로 핀 고정 (moving target 방지) |
2 | | -FROM python:3.11-slim-bookworm |
| 1 | +FROM python:3.9-slim-buster |
3 | 2 |
|
4 | | -ENV DEBIAN_FRONTEND=noninteractive |
5 | 3 | WORKDIR /usr/src/app |
6 | 4 |
|
7 | | -# C/Java 컴파일러 설치 (gcc + JDK 17) |
8 | | -RUN apt-get update && apt-get install -y --no-install-recommends \ |
9 | | - gcc g++ make openjdk-17-jdk-headless \ |
10 | | - && rm -rf /var/lib/apt/lists/* |
| 5 | +# Python 서버 파일 복사 |
| 6 | +COPY server/app.py . |
| 7 | +COPY server/code ./code |
11 | 8 |
|
12 | | -# Python deps |
| 9 | +# requirements.txt 복사 → 꼭 있어야 함 |
13 | 10 | COPY requirements.txt ./ |
14 | | -RUN pip install --no-cache-dir -r requirements.txt |
15 | 11 |
|
16 | | -# App |
17 | | -COPY server/app.py . |
18 | | -COPY server/code ./code |
| 12 | +# 모든 언어의 entrypoint 스크립트 복사 |
19 | 13 | COPY docker/python/entrypoint.sh ./entrypoint_python.sh |
20 | 14 | COPY docker/java/entrypoint.sh ./entrypoint_java.sh |
| 15 | +COPY docker/c/entrypoint.sh ./entrypoint_c.sh |
| 16 | + |
| 17 | +# 실행 권한 부여 |
21 | 18 | RUN chmod +x entrypoint_*.sh |
22 | 19 |
|
| 20 | +# 필요한 Python 패키지 설치 (Flask + OpenAI + dotenv 등 전부) |
| 21 | +RUN pip install --no-cache-dir -r requirements.txt |
| 22 | + |
| 23 | +# 필요한 패키지 설치 전 캐시 클리어 |
| 24 | +RUN apt-get update && apt-get install -y \ |
| 25 | + ca-certificates \ |
| 26 | + curl \ |
| 27 | + gnupg \ |
| 28 | + lsb-release && \ |
| 29 | + curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \ |
| 30 | + echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list && \ |
| 31 | + apt-get update && \ |
| 32 | + apt-get install -y docker-ce docker-ce-cli containerd.io && \ |
| 33 | + ln -s /usr/bin/docker /usr/local/bin/docker && \ |
| 34 | + apt-get clean && \ |
| 35 | + rm -rf /var/lib/apt/lists/* /var/cache/apt/* |
| 36 | + |
| 37 | +# Python 버퍼링 비활성화 |
23 | 38 | ENV PYTHONUNBUFFERED=1 |
| 39 | + |
24 | 40 | EXPOSE 5050 |
| 41 | + |
25 | 42 | CMD ["python", "-Xutf8", "app.py"] |
0 commit comments