개요
Codespace를 만들면 개발 컨테이너가 원격 가상 머신에 자동으로 만들어집니다. 이 개발 컨테이너는 Docker 이미지에서 만들어집니다. 이미지는 사실상 Docker 컨테이너에 대한 템플릿이며 Codespace에서 제공하는 결과 환경의 여러 측면을 결정합니다. 자세한 내용은 "GitHub Codespaces 개요"을(를) 참조하세요.
리포지토리에 대한 개발 컨테이너 구성에 지정하여 Codespace에 사용할 이미지를 선택할 수 있습니다. 예를 들어 devcontainer.json
파일의 image
속성을 사용하여 이 작업을 수행할 수 있습니다.
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",
자세한 내용은 개발 컨테이너 웹 사이트의 개발 컨테이너 사양을 참조하세요.
또는 Dockerfile에서 기본 이미지를 지정할 수 있습니다. 자세한 내용은 "개발 컨테이너 소개"을(를) 참조하세요.
리포지토리에 대한 개발 컨테이너 구성에서 이미지를 지정하지 않으면 기본 개발 컨테이너 이미지가 사용됩니다. 기본 이미지에는 인기 있는 언어 및 일반적으로 사용되는 도구에 대한 여러 런타임 버전이 포함되어 있습니다. 자세한 내용은 "개발 컨테이너 소개"을(를) 참조하세요.
조직 소유자 조직 내에서 만든 Codespace에 사용할 수 있는 개발 컨테이너 이미지를 제한하는 정책을 추가할 수 있습니다.
정책에서 허용하지 않는 이미지를 지정하는 devcontainer.json
을 사용하여 codespace를 만들려는 경우 다음 메시지가 GitHub에 표시됩니다.
개발 컨테이너 구성에 지정된 이미지가 허용되지 않으므로 codespace를 만들 수 없습니다. 다른 분기를 선택하거나, 컨테이너 구성을 수정하거나, 조직의 정책 설정을 조정해야 할 수 있습니다.
CLI를 사용하면 다음과 같은 오류 메시지가 표시됩니다.
codespace 만들기 오류: HTTP 400: 기본 이미지 'IMAGE-REFERENCE'는 조직 관리자가 설정한 조직 정책에 따라 허용되지 않습니다.
codespace의 이미지가 Dockerfile에 지정되어 있고 정책과 일치하지 않으면 지정된 이미지가 아닌 기본 복구 컨테이너를 사용하여 복구 모드에서 codespace가 만들어집니다. 이 효과에 대한 메시지는 생성 로그의 끝에 포함됩니다. 생성 로그에 대한 자세한 내용은 “GitHub Codespaces 로그”를 참조하세요.
참고:
- 개발 컨테이너 기본 이미지는 호스트 이미지와 혼동해서는 안 됩니다. 호스트 이미지는 개발 컨테이너가 실행하는 가상 머신을 빌드하는 데 사용되는 이미지입니다. 자세한 내용은 "안정적인 호스트 또는 베타 호스트 이미지 선택"을(를) 참조하세요.
- 기본 이미지 정책은 codespace를 만들 때와 전체 컨테이너 다시 빌드를 수행할 때 적용됩니다. 자세한 내용은 "codespace 수명 주기 이해"을(를) 참조하세요.
- 기본 이미지 정책은 기본 이미지 또는 컨테이너를 다시 작성할 수 없는 개발 컨테이너 구성에 오류가 발생하는 경우 Codespace를 복구하는 데 사용되는 이미지에 적용되지 않습니다.
조직 전체 및 리포지토리별 정책 설정
정책을 만들 때 조직의 모든 리포지토리에 적용할지 또는 지정된 리포지토리에만 적용할지 선택합니다. 조직 전체 정책을 설정하는 경우 개별 리포지토리에 대해 설정한 정책은 조직 수준에서 설정된 제한에 속해야 합니다. 정책을 추가하면 이미지를 더 많이 선택할 수 있습니다.
예를 들어 기본 이미지를 지정된 10개 이미지로 제한하는 조직 전체 정책을 만들 수 있습니다. 그런 다음, 리포지토리 A에 대한 정책을 설정하여 이미지를 조직 수준에서 지정된 두 이미지의 하위 집합으로 제한할 수 있습니다. 리포지토리 A에 대한 추가 이미지를 지정해도 이러한 이미지는 조직 수준 정책에 지정되지 않으므로 영향을 주지 않습니다. 조직 전체 정책을 추가하는 경우 조직의 모든 리포지토리에 사용할 수 있는 가장 큰 이미지로 설정해야 합니다. 그런 다음, 리포지토리별 정책을 추가하여 선택을 추가로 제한할 수 있습니다.
참고: Codespaces 정책은 조직에서 지불하는 Codespaces에만 적용됩니다. 사용자가 자신의 비용으로 조직의 리포지토리에 대한 codespace를 만드는 경우 codespace는 이러한 정책에 구속되지 않습니다. 자세한 내용은 "조직에서 codespace를 소유하고 비용을 지불하는 사람 선택"을(를) 참조하세요.
허용된 이미지를 정의하는 정책 추가
-
GitHub의 오른쪽 위 모서리에서 프로필 사진을 선택하고 조직을 클릭합니다.
-
조직 옆에 있는 설정을 클릭합니다.
-
사이드바의 "코드, 계획 및 자동화" 섹션에서 Codespaces 를 선택한 다음, 정책을 클릭합니다.
-
"Codespaces 정책" 페이지에서 정책 만들기를 클릭합니다.
-
새 정책의 이름을 입력합니다.
-
제약 조건 추가를 클릭하고 Base 이미지를 선택합니다.
-
을 클릭하여 제약 조건을 편집합니다.
-
"허용되는 값" 필드에 허용하려는 Docker 이미지의 이미지 참조를 입력합니다.
*
와일드카드를 이미지 참조의 마지막 문자로 사용하면 와일드카드 왼쪽과 동일한 참조로 시작하는 모든 이미지를 일치시킬 수 있습니다. 예들 들어mcr.microsoft.com/devcontainers/*
입니다. -
를 클릭하여 값을 추가합니다.
-
필요한 경우 이전 두 단계를 반복하여 이미지 참조를 더 추가합니다.
여러 이미지 참조를 추가할 때 리포지토리의 개발 컨테이너 구성에 지정된 이미지 참조가 리포지토리에 적용되는 정책의 참조와 일치하지 않으면 해당 리포지토리에 대한 codespace를 만들 수 없습니다.
-
대화 상자의 바깥을 클릭하여 대화 상자를 닫습니다.
-
기본적으로 정책은 모든 리포지토리에 적용되도록 설정됩니다. 조직의 일부 리포지토리에만 적용하려면 모든 리포지토리를 클릭한 다음 드롭다운 메뉴에서 선택한 리포지토리를 클릭합니다.
참고: 이미 "사용자당 최대 codespace" 제약 조건이 포함된 기존 정책에 제약 조건을 추가하는 경우 선택한 리포지토리에 정책을 적용할 수 없습니다. 이는 "사용자당 최대 codespace" 제약 조건이 항상 조직의 모든 리포지토리에 적용하기 때문입니다.
선택한 리포지토리를 선택한 상태:
-
을 클릭합니다.
-
이 정책을 적용할 리포지토리를 선택합니다.
-
리포지토리 목록 아래쪽에서 리포지토리 선택을 클릭합니다.
-
-
정책에 다른 제약 조건을 추가하려면 제약 조건 추가를 클릭하고 다른 제약 조건을 선택합니다. 다른 제약 조건에 대한 자세한 내용은 다음을 참조하세요.
-
정책에 제약 조건 추가를 완료한 후 저장을 클릭합니다.
이 정책은 누구나 조직에 청구할 수 있는 새 codespace를 만들려고 할 때 적용됩니다. 기본 이미지 제약 조건은 활성 또는 중지된 기존 Codespace에 영향을 주지 않습니다.
정책 편집
기존 정책을 편집할 수 있습니다. 예를 들어 정책에서 제약 조건을 추가하거나 제거할 수 있습니다.
- “Codespaces 정책” 페이지를 표시합니다. 자세한 내용은 "허용된 이미지를 정의하는 정책 추가"를 참조하세요.
- 편집할 정책의 이름을 클릭합니다.
- "기본 이미지" 제약 조건 옆에 있는 을 클릭합니다.
- 이미지 참조를 추가하거나 제거합니다.
- 저장을 클릭합니다.
정책 삭제
-
“Codespaces 정책” 페이지를 표시합니다. 자세한 내용은 "허용된 이미지를 정의하는 정책 추가"를 참조하세요.
-
삭제하려는 정책의 오른쪽에 있는 을(를) 클릭합니다.