패키지와 캐시 관리¶
이미지를 다시 빌드하지 않고도 시스템/언어 패키지를 추가하고 캐시를 인스턴스 간에 공유할 수 있습니다. 핵심은 모든 도구 캐시를 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 |
|
자동 |
uv Python |
|
자동 |
pip |
|
자동 |
Hugging Face |
|
자동. 대용량 모델은 dataset 볼륨 권장 |
PyTorch hub |
|
자동 |
npm |
|
prefix 설정 후 |
Brewfile |
|
|
shell |
|
자동 |
큰 모델/데이터셋¶
수십 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 한 줄로 같은 도구를 재현할 수 있습니다.