이전: MODEL_DEVICE: cuda (하드코딩) → .env 에 MODEL_DEVICE=cpu 두어도
compose environment 가 env_file 보다 우선이라 무시됨.
수정: MODEL_DEVICE: ${MODEL_DEVICE:-cuda} — 셸 env 또는 .env 의 값이
있으면 그 값, 없으면 기본 cuda.
용도: FinBERT/Chronos 가 GPU 에서 'no kernel image is available for
execution on the device' (PyTorch cu121 / RTX 3070 Ti 호환 이슈) 가 날 때
.env 에 MODEL_DEVICE=cpu 두고 backend 만 recreate 하면 CPU 폴백.
echo MODEL_DEVICE=cpu>> .env
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d backend
16 lines
548 B
YAML
16 lines
548 B
YAML
services:
|
|
backend:
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: all
|
|
capabilities: [gpu]
|
|
environment:
|
|
# MODEL_DEVICE 는 .env 로 덮어쓰기 가능. GPU 빌드라도 PyTorch/CUDA 호환 문제 (예:
|
|
# 'no kernel image is available for execution on the device') 발생 시 .env 에
|
|
# MODEL_DEVICE=cpu 를 두고 `docker compose ... up -d backend` 로 회피.
|
|
MODEL_DEVICE: ${MODEL_DEVICE:-cuda}
|
|
NVIDIA_VISIBLE_DEVICES: all
|