FROM nvidia/cuda:12.1.0-runtime-ubuntu22.04

# 이 이미지(:tini)는 시나리오 3에서도 재사용되므로 prestop.sh를 미리 포함.
# 시나리오 2는 preStop hook 자체가 없어서 prestop.sh를 호출하지 않음.

RUN apt-get update && apt-get install -y python3 python3-pip procps psmisc tini && \
    pip3 install --no-cache-dir torch && \
    rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY parent.py gpu_worker.py ./
COPY observe.sh /usr/local/bin/observe.sh
COPY prestop.sh /usr/local/bin/prestop.sh
RUN chmod +x /usr/local/bin/observe.sh /usr/local/bin/prestop.sh

# PID 1 = tini (좀비 수거 O, signal 전달 O)
ENTRYPOINT ["tini", "--"]
CMD ["sleep", "infinity"]
