전역 워크스페이스 템플릿 생성 방법
전역 워크스페이스 템플릿은 연구자에게 워크스페이스 템플릿으로 보입니다. 모든 사용자에게 표시되며,
만들고 편집하고 enable/disable하거나 import/export/delete하는 작업은 모두 root 관리자만
admin의 Workspace templates 영역(/admin/templates)에서 할 수 있습니다.
기본 제공 워크스페이스 템플릿의 README 미리보기는 Markdown 표와 fenced code block을 지원합니다. 여러 줄 명령은 fenced block에 넣어야 미리보기에서 한 문단으로 합쳐지지 않고 읽고 복사할 수 있습니다.
기존 이미지에서 워크스페이스 템플릿 만들기
섹션 제목: “기존 이미지에서 워크스페이스 템플릿 만들기”
- Workspace templates(
/admin/templates)를 엽니다. - New workspace template을 클릭해 생성 양식을 엽니다.
- Name과 Image를 입력합니다.
docker.io/library/python:3.11,ghcr.io/org/image:tag,nvcr.io/...처럼 registry host가 들어간 전체 이미지 참조를 사용하세요. LabPod는python:3.11처럼 registry가 빠진 이름을 거부합니다. - Type, Default CPU, Default memory, GPU 기본값을 설정합니다. 이 값들은 연구자가 보는 생성 양식의 추천 자원이 됩니다.
- port 또는 launcher 정의를 추가합니다.
- 일반 앱은 Import launcher를 우선 사용합니다.
- 특정 워크스페이스 템플릿에만 필요한 앱은 manual port를 사용합니다.
- 정의를 검토할 때까지 Disabled를 켜 둡니다.
- 워크스페이스 템플릿을 저장합니다.
- 워크스페이스 템플릿으로 돌아와 Disabled를 해제하고 저장합니다. 각 연구자는 워크스페이스를 설정할 때 자신의 계정으로 이미지를 다운로드합니다.
Enable된 워크스페이스 템플릿은 모든 사용자의 워크스페이스 생성 양식에 표시됩니다. 다른 워크스페이스 템플릿이 기본 추천으로 지정되어 있지 않다면, 새 연구자에게 분명한 시작점을 주도록 Recommend selected를 누르라고 페이지가 안내합니다. 기본 추천으로 지정된 워크스페이스 템플릿에는 Default 표시가 붙으며 상세 화면에서 해제할 수 있습니다.
이미지 태그, 명령, 포트, 환경 변수, 마운트, launcher 동작, 번들 세부 정보 같은 기술적인 필드는 상세 화면 위쪽의 CPU/메모리/GPU 기본값 및 앱/자원 요약과 분리되어 해당 워크스페이스 템플릿의 Advanced 토글 안에 있습니다.
워크스페이스 템플릿 번들 import
섹션 제목: “워크스페이스 템플릿 번들 import”다른 LabPod 서버나 사용자가 export한 .tar 번들을 받을 때 import를 사용합니다.
- Workspace templates(
/admin/templates)를 엽니다. - Import를 클릭합니다.
.tar번들을 업로드합니다. LabPod 서버가 접근할 수 있는 위치에 번들이 있다면 번들 URL을 붙여 넣어도 됩니다.- image, ports, README, Dockerfile, context 파일 preview를 확인합니다.
- import를 commit합니다.
- 번들에 Dockerfile이 있으면 보존된 레시피를 검토한 뒤 워크스페이스 템플릿을 enable합니다. root는 이미지를 빌드하지 않으며 각 연구자가 설정 중에 자신의 계정으로 빌드합니다.
Import한 Dockerfile context는 LabPod이 보존하므로 나중에 다시 빌드하고 re-export할 수 있습니다.
자동화나 오프라인 전달이 필요하면 root 관리자가 CLI로 호스트에 있는 번들을 가져올 수 있습니다.
sudo labpod admin template import ./template.tar --globalsudo labpod admin template import ./template.tar --owner alice# Run these as rootlabpod admin template import ./template.tar --globallabpod admin template import ./template.tar --owner alice--global로 가져온 워크스페이스 템플릿은 root가 검토한 뒤 활성화할 수 있도록 비활성화 상태로
생성됩니다. --owner로 가져온 워크스페이스 템플릿은 처음부터 해당 사용자의 계정에 속하므로
즉시 활성 상태로 생성됩니다. Dockerfile 기반 번들은 웹 UI에서만 빌드되며 CLI는 이미지
빌드를 조율하지 않습니다.
Dockerfile 기반 전역 레시피 게시
섹션 제목: “Dockerfile 기반 전역 레시피 게시”번들에서 만든 워크스페이스 템플릿이나 built-in managed 워크스페이스 템플릿에는 Dockerfile이 있을 수 있습니다. root는 전역 정의를 소유하고 검토하지만 워크스페이스 이미지를 빌드하지 않습니다. 연구자가 enable된 레시피를 선택하면 LabPod가 컨텍스트와 출력 태그를 결정하고 해당 연구자의 계정에서 빌드합니다.
FROM, Dockerfile # syntax=..., COPY --from=..., RUN --mount=from=...에서 외부 이미지를 사용할 때는 모두 registry host를 명시해야 합니다. localhost/...는 로컬 rootless store 이미지로 취급하지만 localhost:<port>/...도 다른 host와 마찬가지로 registry host를 명시해야 합니다.
- Dockerfile과 컨텍스트가 있는 워크스페이스 템플릿을 가져오거나 생성합니다.
- 레시피와 레지스트리 출처를 검토합니다.
- 워크스페이스 템플릿을 enable합니다.
- 일반 테스트 계정에서 해당 워크스페이스 템플릿을 선택해 워크스페이스를 만든 뒤, 그 워크스페이스 자체 페이지에서 Build image를 사용합니다. 빌드 결과와 이미지는 그 계정에만 속합니다.
root는 워크스페이스 이미지를 pull하거나 빌드할 수 없습니다. 여러 계정에 빌드된 이미지 하나를 배포하려면 허용된 외부 레지스트리에 게시하며, ad-hoc root 빌드를 캐시로 사용하지 않습니다.
Launcher 추가 또는 편집
섹션 제목: “Launcher 추가 또는 편집”Launcher는 연구자의 Manage workspace → App controls 아래에 앱을 표시합니다.

- Launchers(
/admin/launchers, Workspace templates에서도 이동 가능)를 열고 New launcher를 선택해 재사용 가능한 launcher 정의를 만듭니다. - Workspace templates(
/admin/templates)를 엽니다. - 워크스페이스 템플릿을 선택하고 ports 섹션에서 Import launcher를 클릭합니다.
- catalog launcher를 고르고 저장합니다.
Catalog import는 snapshot입니다. 나중에 Launchers를 수정해도 기존 워크스페이스 템플릿은 바뀌지 않습니다. 워크스페이스 템플릿을 바꾸려면 다시 import하거나 template port를 직접 편집하세요.
삭제보다 disable
섹션 제목: “삭제보다 disable”새 워크스페이스에서 더 이상 쓰지 못하게 하되 기존 워크스페이스 기록은 보존하려면 워크스페이스 템플릿을 disable하세요. Delete는 해당 워크스페이스 템플릿에 의존하는 워크스페이스가 없을 때만 사용합니다.