콘텐츠로 이동

템플릿 생성 방법

템플릿은 LabPod이 워크스페이스를 만들 때 쓰는 설정 모음입니다. 이미지, 앱 런처, 기본 CPU와 메모리, GPU 선호값, 환경 변수, 생성 화면에 표시되는 README를 기록합니다.

README 미리보기는 Markdown 표와 fenced code block을 지원합니다. 넓은 표와 긴 명령은 미리보기 안에서 가로로 스크롤하므로 설치 명령은 fenced block에 넣고 템플릿 차이는 표로 비교하세요.

반복해서 쓸 개인 작업 환경이 필요하면 비공개 템플릿을 사용하세요. 관리자는 /admin/templates에서 모두가 볼 수 있는 전역 템플릿을 만들고, 일반 사용자는 Templates → My templates에서 비공개 템플릿을 만듭니다.

My images 탭은 활성 컨테이너, 디스크 회수, 공유, 추적되지 않는 컨테이너 확인보다 이미지 목록을 먼저 표시합니다. 이런 세부 정보가 필요할 때만 Manage를 선택하세요. 재사용 가능한 전역 프리셋을 모두 불러오기 전에도 My templates가 표시되므로 이미지가 많은 호스트에서도 두 영역을 바로 사용할 수 있습니다.

기존 이미지에서 템플릿 만들기

섹션 제목: “기존 이미지에서 템플릿 만들기”

이미지가 레지스트리나 내 루트리스 Podman 이미지 저장소에 이미 있으면 이 경로를 씁니다.

  1. Templates를 엽니다. 페이지는 My templates 탭으로 시작합니다.
  2. New template을 클릭합니다.
  3. NameImage를 입력합니다. 예: docker.io/pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime.
  4. Default CPUDefault memory에 적절한 기본값을 넣습니다.
  5. Ports 섹션에서 런처를 추가합니다. 맞는 카탈로그 런처가 있으면 Import launcher를 사용하세요.
  6. 이 템플릿에서 만든 모든 워크스페이스가 받아야 하는 값이 있으면 템플릿 환경 변수를 추가합니다.
  7. Create template을 클릭합니다.

템플릿은 My templates 탭과 create-workspace 화면의 My templates 아래에 나타납니다. 이 템플릿은 내 계정에서만 편집하고 워크스페이스를 만들 때 쓸 수 있습니다.

누군가 준 .tar LabPod 번들을 그대로 쓰기 전에 Dockerfile이나 빌드 컨텍스트를 고치려면 Clone을 사용합니다.

  1. Templates → My templates를 엽니다.
  2. Import bundle을 클릭합니다.
  3. .tar 번들 파일을 선택합니다.
  4. 미리보기를 확인합니다. Dockerfile이 있으면 LabPod이 Dockerfile과 컨텍스트 파일 목록을 보여줍니다.
  5. 필요하면 Display name을 바꿉니다.
  6. **Clone (edit, then build)**를 클릭합니다.

LabPod은 비활성화된 비공개 템플릿을 만들고 편집할 수 있는 빌드 컨텍스트를 다음 위치에 씁니다.

~/work/.labpod/context/<template-id>/

보통 이 디렉터리에는 다음 파일이 있습니다.

Dockerfile
requirements.txt
Dockerfile이 COPY하는 다른 파일

편집하려면:

Dockerfile과 컨텍스트 파일을 편집하는 파일 관리자

  1. My templates에서 clone한 템플릿을 선택합니다.
  2. Edit files를 클릭합니다.
  3. 파일 관리자에서 Dockerfile을 열고 편집 모드로 전환한 뒤 수정하고 저장합니다.
  4. requirements.txt 같은 복사 파일도 같은 방식으로 수정합니다.

빌드하려면:

  1. My templates로 돌아갑니다.
  2. clone한 템플릿을 선택합니다.
  3. Build를 클릭합니다.
  4. 빌드 로그를 보려면 My build history를 엽니다.
  5. 빌드가 성공하면 템플릿으로 돌아가 Save를 클릭해 실행할 수 있게 합니다.

빌드는 템플릿 단위로 이뤄집니다. LabPod은 ~/work/.labpod/context/<template-id>/에서 Dockerfile을 읽고 템플릿에 저장된 이미지 태그로 빌드합니다. 별도의 빌드 경로를 입력하지 않습니다.

번들을 신뢰하고 Dockerfile을 수정하지 않고 쓰려면 Import를 사용합니다.

  1. Templates → My templates를 엽니다.
  2. Import bundle을 클릭합니다.
  3. .tar 파일을 선택하고 미리보기를 확인합니다.
  4. 번들에 Dockerfile이 있으면 즉시 빌드하려고 Build now를 켜 둡니다.
  5. **Import (build now)**를 클릭합니다.
  6. 빌드가 성공하면 템플릿을 선택하고 Save를 클릭해 실행할 수 있게 합니다.

Build now를 끄면 LabPod은 템플릿을 등록하고 컨텍스트를 보존합니다. 워크스페이스를 만들기 전에 템플릿의 Build 버튼으로 나중에 빌드하세요.

템플릿을 다른 LabPod 사용자나 다른 LabPod 서버와 공유하려면 내보냅니다.

  1. Templates → My templates를 엽니다.
  2. 템플릿을 선택합니다.
  3. Export를 클릭합니다.

다운로드한 번들에는 템플릿 메타데이터, README, 있으면 Dockerfile과 빌드 컨텍스트가 담깁니다. 내 /work 파일이나 워크스페이스 홈은 포함되지 않습니다.

시스템 패키지, Python 패키지, CUDA 호환 라이브러리, 앱 서버, CLI 도구는 Dockerfile에 넣습니다. 프로젝트 데이터, 노트북, 체크포인트, 대용량 데이터셋은 /work나 공유 마운트에 둡니다.

예:

FROM docker.io/pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime
RUN apt-get update \
&& apt-get install -y --no-install-recommends git curl \
&& rm -rf /var/lib/apt/lists/*
RUN pip install --no-cache-dir jupyterlab tensorboard streamlit gradio
WORKDIR /work

워크스페이스가 시작되면 LabPod은 내 영구 ~/work/work로 마운트합니다. 그래서 이미지가 /work에 넣어 둔 파일은 이 마운트에 가려집니다. 다시 쓸 코드가 필요하면 이미지의 다른 경로에 두거나 복제한 컨텍스트에 보관한 뒤 /opt/project-template 같은 경로로 복사하세요.