패키지와 캐시 관리

이미지를 다시 빌드하지 않고도 시스템/언어 패키지를 추가하고 캐시를 인스턴스 간에 공유할 수 있습니다. 핵심은 모든 도구 캐시를 home 볼륨(/home/ocean) 아래에 두는 것입니다.

전제: 권장 마운트 레이아웃이 적용된 인스턴스라고 가정합니다.

시스템 패키지 — Homebrew

brew 볼륨이 /home/linuxbrew/.linuxbrew에 마운트된 상태면 Homebrew는 이미 설치되어 있습니다.

brew install git tmux ripgrep fd jq

# Brewfile로 묶기 (홈 볼륨에 저장)
cd ~
brew bundle dump --force                 # 현재 설치된 항목 → ~/Brewfile
brew bundle --file=~/Brewfile            # 다른 인스턴스에서 재현

설치된 패키지는 brew 볼륨에 저장되므로 인스턴스를 다시 만들거나 다른 인스턴스에 같은 볼륨을 마운트하면 그대로 사용 가능합니다.

Python 패키지 — uv

uv는 기본 이미지에 없습니다. Homebrew로 설치합니다.

brew install uv

캐시와 가상환경을 홈 볼륨에 두면 재현이 쉽습니다.

# 새 프로젝트
cd /workspace/my-project
uv init
uv add torch transformers

# 실행
uv run python train.py

# pyproject.toml 기준 동기화
uv sync

uv 캐시를 홈 볼륨에 고정

~/.cache/uv가 기본 캐시 위치입니다. 홈 볼륨이 /home/ocean이면 별도 설정 없이 자동으로 유지됩니다.

명시적으로 강제하려면:

export UV_CACHE_DIR="$HOME/.cache/uv"
export UV_PYTHON_INSTALL_DIR="$HOME/.local/share/uv/python"

위 두 줄을 ~/.bashrc 또는 ~/.zshrc에 추가하면 인스턴스 재생성 후에도 유지됩니다.

Node 패키지 — node / npm

Node와 npm도 기본 이미지에 없습니다. Homebrew로 설치합니다.

brew install node     # node + npm 함께 설치

기본 npm install -g는 컨테이너 내부 시스템 경로에 설치되어 인스턴스 종료 시 사라집니다. 홈 볼륨 아래로 prefix를 옮기세요.

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# 이제 글로벌 설치가 홈 볼륨에 남음
npm install -g pnpm yarn typescript

프로젝트 단위 의존성은 ~/.cache/npm에 캐시되며 홈 볼륨에 자동 유지됩니다.

캐시 위치 요약

홈 볼륨(/home/ocean)에 자동 또는 권장 설정 시 유지되는 캐시:

도구

경로

비고

uv

~/.cache/uv

자동

uv Python

~/.local/share/uv/python

자동

pip

~/.cache/pip

자동

Hugging Face

~/.cache/huggingface

자동. 대용량 모델은 dataset 볼륨 권장

PyTorch hub

~/.cache/torch

자동

npm

~/.npm, ~/.npm-global

prefix 설정 후

Brewfile

~/Brewfile

brew bundle dump로 생성

shell

~/.bashrc, ~/.zshrc, ~/.history

자동

큰 모델/데이터셋

수십 GB 이상의 모델 가중치나 학습 데이터는 dataset 볼륨(/dataset)에 두는 편이 좋습니다. 홈 볼륨 용량을 아끼고 여러 인스턴스가 읽기 전용으로 공유하기 쉽습니다.

# HF 모델 다운로드 경로를 dataset 볼륨으로
export HF_HOME=/dataset/hf
huggingface-cli download meta-llama/Llama-3-8B

환경 재현 체크리스트

새 인스턴스에서 같은 환경을 빠르게 복구하려면:

  • brew 볼륨 마운트 → 처음 한 번 brew install uv node ... (또는 brew bundle --file=~/Brewfile)

  • home 볼륨 마운트 → .bashrc, npm prefix, uv 캐시 자동 적용

  • 프로젝트 디렉터리에서 uv sync 또는 npm install

  • (필요 시) dataset 볼륨 마운트

처음 한 번 brew install uv node git tmux ...을 끝낸 뒤 brew bundle dump --force~/Brewfile을 만들어두면, 새 인스턴스에서 brew bundle --file=~/Brewfile 한 줄로 같은 도구를 재현할 수 있습니다.