Skip to main content

Codespace에 대한 기본 이미지 제한

조직 내에서 만든 새 Codespace에 개발 컨테이너를 만드는 데 사용할 수 있는 기본 이미지를 지정할 수 있습니다.

누가 이 기능을 사용할 수 있는 있나요?

To manage image constraints for an organization's codespaces, you must be an owner of the organization.

GitHub Team 및 GitHub Enterprise 플랜의 조직은 구성원과 공동 작업자가 GitHub Codespaces을(를) 사용하는 비용을 지불할 수 있습니다. 조직은 설정 및 정책에 액세스하여 조직에서 지불한 코드스페이스를 관리할 수 있습니다. 자세한 내용은 "조직에서 codespace를 소유하고 비용을 지불하는 사람 선택"과 "GitHub의 플랜"을 참조하세요.

개요

Codespace를 만들면 개발 컨테이너가 원격 가상 머신에 자동으로 만들어집니다. 이 개발 컨테이너는 Docker 이미지에서 만들어집니다. 이미지는 사실상 Docker 컨테이너에 대한 템플릿이며 Codespace에서 제공하는 결과 환경의 여러 측면을 결정합니다. 자세한 내용은 "GitHub Codespaces 개요"을(를) 참조하세요.

리포지토리에 대한 개발 컨테이너 구성에 지정하여 Codespace에 사용할 이미지를 선택할 수 있습니다. 예를 들어 devcontainer.json 파일의 image 속성을 사용하여 이 작업을 수행할 수 있습니다.

JSON
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",

자세한 내용은 개발 컨테이너 웹 사이트의 개발 컨테이너 사양을 참조하세요.

또는 Dockerfile에서 기본 이미지를 지정할 수 있습니다. 자세한 내용은 "개발 컨테이너 소개"을(를) 참조하세요.

리포지토리에 대한 개발 컨테이너 구성에서 이미지를 지정하지 않으면 기본 개발 컨테이너 이미지가 사용됩니다. 기본 이미지에는 인기 있는 언어 및 일반적으로 사용되는 도구에 대한 여러 런타임 버전이 포함되어 있습니다. 자세한 내용은 "개발 컨테이너 소개"을(를) 참조하세요.

조직 소유자 조직 내에서 만든 Codespace에 사용할 수 있는 개발 컨테이너 이미지를 제한하는 정책을 추가할 수 있습니다.

정책에서 허용하지 않는 이미지를 지정하는 devcontainer.json을 사용하여 codespace를 만들려는 경우 다음 메시지가 GitHub.com에 표시됩니다.

개발 컨테이너 구성에 지정된 이미지가 허용되지 않으므로 codespace를 만들 수 없습니다. 다른 분기를 선택하거나, 컨테이너 구성을 수정하거나, 조직의 정책 설정을 조정해야 할 수 있습니다.

CLI를 사용하면 다음과 같은 오류 메시지가 표시됩니다.

codespace 만들기 오류: HTTP 400: 기본 이미지 'IMAGE-REFERENCE'는 조직 관리자가 설정한 조직 정책에 따라 허용되지 않습니다.

codespace의 이미지가 Dockerfile에 지정되어 있고 정책과 일치하지 않으면 지정된 이미지가 아닌 기본 복구 컨테이너를 사용하여 복구 모드에서 codespace가 만들어집니다. 이 효과에 대한 메시지는 생성 로그의 끝에 포함됩니다. 생성 로그에 대한 자세한 내용은 “GitHub Codespaces 로그”를 참조하세요.

참고:

  • 개발 컨테이너 기본 이미지는 호스트 이미지와 혼동해서는 안 됩니다. 호스트 이미지는 개발 컨테이너가 실행하는 가상 머신을 빌드하는 데 사용되는 이미지입니다. 자세한 내용은 "안정적인 호스트 또는 베타 호스트 이미지 선택"을(를) 참조하세요.
  • 기본 이미지 정책은 codespace를 만들 때와 전체 컨테이너 다시 빌드를 수행할 때 적용됩니다. 자세한 내용은 "codespace 수명 주기 이해"을(를) 참조하세요.
  • 기본 이미지 정책은 기본 이미지 또는 컨테이너를 다시 작성할 수 없는 개발 컨테이너 구성에 오류가 발생하는 경우 Codespace를 복구하는 데 사용되는 이미지에 적용되지 않습니다.

조직 전체 및 리포지토리별 정책 설정

정책을 만들 때 조직의 모든 리포지토리에 적용할지 또는 지정된 리포지토리에만 적용할지 선택합니다. 조직 전체 정책을 설정하는 경우 개별 리포지토리에 대해 설정한 정책은 조직 수준에서 설정된 제한에 속해야 합니다. 정책을 추가하면 이미지를 더 많이 선택할 수 있습니다.

예를 들어 기본 이미지를 지정된 10개 이미지로 제한하는 조직 전체 정책을 만들 수 있습니다. 그런 다음, 리포지토리 A에 대한 정책을 설정하여 이미지를 조직 수준에서 지정된 두 이미지의 하위 집합으로 제한할 수 있습니다. 리포지토리 A에 대한 추가 이미지를 지정해도 이러한 이미지는 조직 수준 정책에 지정되지 않으므로 영향을 주지 않습니다. 조직 전체 정책을 추가하는 경우 조직의 모든 리포지토리에 사용할 수 있는 가장 큰 이미지로 설정해야 합니다. 그런 다음, 리포지토리별 정책을 추가하여 선택을 추가로 제한할 수 있습니다.

참고: Codespaces 정책은 조직에서 지불하는 Codespaces에만 적용됩니다. 사용자가 자신의 비용으로 조직의 리포지토리에 대한 codespace를 만드는 경우 codespace는 이러한 정책에 구속되지 않습니다. 자세한 내용은 "조직에서 codespace를 소유하고 비용을 지불하는 사람 선택"을(를) 참조하세요.

허용된 이미지를 정의하는 정책 추가

  1. GitHub.com의 오른쪽 위에서 프로필 사진을 선택한 다음 내 조직을 클릭합니다.

    @octocat 프로필 사진의 드롭다운 메뉴 스크린샷입니다. "조직"이 진한 주황색으로 표시됩니다.

  2. 조직 옆에 있는 설정을 클릭합니다.

  3. 사이드바의 "코드, 계획 및 자동화" 섹션에서 Codespaces 를 선택한 다음, 정책을 클릭합니다.

  4. "Codespaces 정책" 페이지에서 정책 만들기를 클릭합니다.

  5. 새 정책의 이름을 입력합니다.

  6. 제약 조건 추가를 클릭하고 Base 이미지를 선택합니다.

  7. 을 클릭하여 제약 조건을 편집합니다.

  8. "허용되는 값" 필드에 허용하려는 Docker 이미지의 이미지 참조를 입력합니다.

    "허용되는 값" 필드에 입력된 이미지 참조 "mcr.microsoft.com/devcontainers/java"의 스크린샷

    * 와일드카드를 이미지 참조의 마지막 문자로 사용하면 와일드카드 왼쪽과 동일한 참조로 시작하는 모든 이미지를 일치시킬 수 있습니다. 예들 들어 mcr.microsoft.com/devcontainers/*입니다.

  9. 를 클릭하여 값을 추가합니다.

  10. 필요한 경우 이전 두 단계를 반복하여 이미지 참조를 더 추가합니다.

    여러 이미지 참조를 추가할 때 리포지토리의 개발 컨테이너 구성에 지정된 이미지 참조가 리포지토리에 적용되는 정책의 참조와 일치하지 않으면 해당 리포지토리에 대한 codespace를 만들 수 없습니다.

  11. 대화 상자의 바깥을 클릭하여 대화 상자를 닫습니다.

  12. 기본적으로 정책은 모든 리포지토리에 적용되도록 설정됩니다. 조직의 일부 리포지토리에만 적용하려면 모든 리포지토리를 클릭한 다음 드롭다운 메뉴에서 선택한 리포지토리를 클릭합니다.

    "모든 리포지토리" 및 "선택한 리포지토리" 옵션을 보여 주는 리포지토리 선택 드롭다운의 스크린샷.

    참고: 이미 "사용자당 최대 codespace" 제약 조건이 포함된 기존 정책에 제약 조건을 추가하는 경우 선택한 리포지토리에 정책을 적용할 수 없습니다. 이는 "사용자당 최대 codespace" 제약 조건이 항상 조직의 모든 리포지토리에 적용하기 때문입니다.

    선택한 리포지토리를 선택한 상태:

    1. 을 클릭합니다.

      "선택한 리포지토리"라는 레이블이 지정된 단추의 왼쪽에 있는 설정 아이콘(기어 기호)의 스크린샷.

    2. 이 정책을 적용할 리포지토리를 선택합니다.

    3. 리포지토리 목록 아래쪽에서 리포지토리 선택을 클릭합니다.

      확인란이 있는 리포지토리 목록의 스크린샷, 세 개의 리포지토리가 선택됩니다.

  13. 정책에 다른 제약 조건을 추가하려면 제약 조건 추가를 클릭하고 다른 제약 조건을 선택합니다. 다른 제약 조건에 대한 자세한 내용은 다음을 참조하세요.

  14. 정책에 제약 조건 추가를 완료한 후 저장을 클릭합니다.

이 정책은 누구나 조직에 청구할 수 있는 새 codespace를 만들려고 할 때 적용됩니다. 기본 이미지 제약 조건은 활성 또는 중지된 기존 Codespace에 영향을 주지 않습니다.

정책 편집

기존 정책을 편집할 수 있습니다. 예를 들어 정책에서 제약 조건을 추가하거나 제거할 수 있습니다.

  1. “Codespaces 정책” 페이지를 표시합니다. 자세한 내용은 "허용된 이미지를 정의하는 정책 추가"를 참조하세요.
  2. 편집할 정책의 이름을 클릭합니다.
  3. "기본 이미지" 제약 조건 옆에 있는 을 클릭합니다.
  4. 이미지 참조를 추가하거나 제거합니다.
  5. 저장을 클릭합니다.

정책 삭제

  1. “Codespaces 정책” 페이지를 표시합니다. 자세한 내용은 "허용된 이미지를 정의하는 정책 추가"를 참조하세요.

  2. 삭제하려는 정책의 오른쪽에 있는 을(를) 클릭합니다.

    삭제 단추(휴지통 아이콘)가 진한 주황색 윤곽선으로 강조 표시된 정책의 스크린샷.