You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.4 KiB

#!/usr/bin/env bash
# kr_lp_pgnet 컨테이너 재생성 (--shm-size 8g 적용 등)
#
# 호스트에서 실행:
# bash scripts/recreate_container.sh
#
# 동작:
# 1. /root/.netrc 백업 (wandb 인증 보존)
# 2. 기존 컨테이너 강제 삭제
# 3. 새 컨테이너 시작 (--shm-size 8g, --gpus all, bind mount)
# 4. .netrc 복원
# 5. setup_server.sh 자동 실행 (paddle 등 재설치)
set -euo pipefail
NAME=kr_lp_pgnet
IMAGE=ubuntu:24.04
SHM=8g
WORKSPACE=/home/cuuva/workspace
# 1. .netrc 백업 (wandb 로그인 보존용)
NETRC_BAK=/tmp/${NAME}_netrc.bak
if docker exec "$NAME" test -f /root/.netrc 2>/dev/null; then
docker cp "$NAME":/root/.netrc "$NETRC_BAK"
echo " ✓ /root/.netrc backed up → $NETRC_BAK"
fi
# 2. 기존 컨테이너 강제 정리
docker rm -f "$NAME" 2>/dev/null || true
# 3. 새 컨테이너 (--shm-size 8g 핵심)
docker run -d --name "$NAME" --gpus all \
--shm-size="$SHM" \
-v "$WORKSPACE:/workspace" \
-w /workspace \
--restart unless-stopped \
"$IMAGE" sleep infinity
echo " ✓ 새 컨테이너 시작 (shm-size=$SHM)"
# 4. .netrc 복원
if [ -f "$NETRC_BAK" ]; then
docker cp "$NETRC_BAK" "$NAME":/root/.netrc
rm "$NETRC_BAK"
echo " ✓ /root/.netrc 복원 (wandb login 유지)"
fi
# 5. setup_server.sh 자동 실행 (paddle/PaddleOCR/cuDNN 등 재설치)
echo
echo " → setup_server.sh 실행..."
docker exec "$NAME" bash /workspace/kr_lp_pgnet/scripts/setup_server.sh