Обзор
При создании пространства кода контейнер разработки автоматически создается на удаленной виртуальной машине. Этот контейнер разработки создается из образа Docker. Образ фактически является шаблоном для контейнеров Docker и определяет множество аспектов результирующей среды, предоставляемой пространством кода. Дополнительные сведения см. в разделе Быстрый старт для GitHub Codespaces.
Можно выбрать образ, который вы хотите использовать для пространств кода, указав его в конфигурации контейнера разработки для репозитория. Это можно сделать, например, с помощью image свойства в devcontainer.json файле.
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",
"image": "mcr.microsoft.com/devcontainers/javascript-node:18",
Дополнительные сведения см. в спецификации контейнеров разработки на веб-сайте "Контейнеры разработки".
Кроме того, можно указать базовый образ в Dockerfile. Дополнительные сведения см. в разделе Основные сведения о контейнерах разработки.
Если образ не указан в конфигурации контейнера разработки для репозитория, используется образ контейнера разработки по умолчанию. Изображение по умолчанию содержит ряд версий среды выполнения для популярных языков и часто используемых средств. Дополнительные сведения см. в разделе Основные сведения о контейнерах разработки.
В качестве владелец организации можно добавить политику, чтобы ограничить, какие образы контейнеров разработки можно использовать для пространств кода, созданных в вашей организации.
Если вы пытаетесь создать пространство кода с помощью devcontainer.json изображения, которое не разрешено политикой, следующее сообщение отображается в GitHub:
Не удается создать пространство кода, так как изображение, указанное в конфигурации контейнера разработки, запрещено. Может потребоваться выбрать другую ветвь, изменить конфигурацию контейнера или настроить параметр политики организации.
С помощью интерфейса командной строки сообщение об ошибке:
Ошибка создания пространства кода: HTTP 400: базовый образ IMAGE-REFERENCE не разрешен на основе политики организации, заданной администратором организации.
Если изображение пространства кода указано в Dockerfile и не соответствует политике, пространство кода создается в режиме восстановления, используя контейнер восстановления по умолчанию, а не указанный образ. Сообщение об этом эффекте будет включено в конце журнала создания. Дополнительные сведения о журнале создания см. в разделе Логи кодовых пространств GitHub.
Примечание.
- Базовый образ контейнера разработки не следует путать с образом узла. Образ узла — это образ, используемый для создания виртуальной машины, на которой выполняется контейнер разработки. Дополнительные сведения см. в разделе Выбор стабильного или бета-образа узла.
- Политика базового образа применяется при создании пространства кода и при выполнении полного перестроения контейнеров. Дополнительные сведения см. в разделе Общие сведения о жизненном цикле пространства кода.
- Политика базового образа не применяется к изображению по умолчанию или изображению, используемому для восстановления пространства кода, если в конфигурацию контейнера разработки возникает ошибка, которая предотвращает перестроение контейнера.
Настройка политик для всей организации и конкретного репозитория
При создании политики вы выбираете, применяется ли она ко всем репозиториям в организации или только к указанным. Если вы устанавливаете политику для всей организации, все политики, установленные для отдельных репозиториев, должны находиться в пределах набора ограничений на уровне организации. Добавление политик делает выбор изображения более, не менее строгим.
Например, можно создать политику всей организации, которая ограничивает базовый образ любым из десяти указанных образов. Затем можно задать политику для репозитория A, которая ограничивает изображение подмножеством всего двух образов, указанных на уровне организации. Указание дополнительных образов для репозитория A не повлияет, так как эти образы не указаны в политике уровня организации. Если вы добавляете политику на уровне организации, ее следует задать для наибольшего выбора образов, которые будут доступны для любого репозитория в вашей организации. Затем вы можете добавить политики для конкретного репозитория, чтобы дополнительно ограничить выбор.
Примечание.
Политики пространства кода применяются только к пространствам кода, за которые платит ваша организация. Если кто-то создает пространство кода для репозитория в вашей организации за счет собственных расходов, пространство кода не будет привязано к этим политикам. Дополнительные сведения см. в разделе Выбор владельцев и оплаты пространств кода в вашей организации.
Добавление политики для определения разрешенных образов
-
В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.
-
Выберите организацию, кликнув по ней.
-
Под именем организации щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

-
В разделе "Код, планирование и автоматизация" боковой панели выберите Codespaces и нажмите кнопку "Политики".
-
На странице "Политики Codespaces" нажмите кнопку "Создать политику".
-
Введите имя для новой политики.
-
Нажмите кнопку "Добавить ограничение" и выберите "Базовые образы".
-
Щелкните для изменения ограничения.
-
В поле "Допустимые значения" введите ссылку на изображение Docker, которое требуется разрешить.

Подстановочный знак можно использовать
*в качестве последнего символа ссылки на изображение, чтобы соответствовать всем изображениям, начинающимся с той же ссылки слева от подстановочного знака. Например:mcr.microsoft.com/devcontainers/*. -
Нажмите кнопку , чтобы добавить значение.
-
При необходимости повторите предыдущие два шага, чтобы добавить дополнительные ссылки на изображения.
При добавлении нескольких ссылок на изображения, если ссылка на образ, указанная в конфигурации контейнера разработки репозитория, не соответствует ни одной из ссылок в политике, которая применяется к репозиторию, вы не сможете создавать пространства кода для этого репозитория.
-
Щелкните вне диалогового окна, чтобы закрыть его.
-
По умолчанию политика применяется ко всем репозиториям, если вы хотите применить ее только к некоторым репозиториям в организации, щелкните "Все репозитории " и выберите пункт "Выбранные репозитории " в раскрывающемся меню.

Примечание.
Если вы добавляете ограничение в существующую политику, которая уже содержит ограничение "Максимальное пространство кода на пользователя", вы не сможете применить политику к выбранным репозиториям. Это связано с тем, что ограничение "Максимальное пространство кода на пользователя" всегда применяется ко всем репозиториям в организации.
Выбранные репозитории :
-
Щелкните .

-
Выберите репозитории, к которым будет применяться эта политика.
-
В нижней части списка репозиториев щелкните Выбрать репозитории.

-
-
Если вы хотите добавить другое ограничение в политику, щелкните Добавить ограничение и сделайте свой выбор. Дополнительные сведения о других ограничениях см. в следующем разделе:
-
Завершив добавление ограничений в политику, щелкните Сохранить.
Политика применяется, когда любой пользователь пытается создать новое пространство кода, которое можно выставлять в вашей организации. Ограничение базового образа не влияет на существующие пространства кода, активные или остановлены.
Изменение политики
Можно изменить существующую политику. Например, вы можете захотеть добавить или удалить ограничения политики.
- Отображение страницы "Политики Codespaces". Дополнительные сведения см. в разделе "Добавление политики" для определения разрешенных образов.
- Щелкните имя политики, которую нужно изменить.
- Рядом с ограничением "Базовые изображения" щелкните .
- Добавление или удаление ссылок на изображения.
- Нажмите кнопку Сохранить.
Удаление политики
-
Отображение страницы "Политики Codespaces". Дополнительные сведения см. в разделе "Добавление политики" для определения разрешенных образов.
-
Щелкните справа от политики, которую вы хотите удалить.
