Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Узнайте, как подключить том gitRepo и клонировать репозиторий в экземпляры контейнеров.
Примечание.
Подключение тома gitRepo сейчас поддерживается только для контейнеров Linux. Мы работаем над тем, чтобы обеспечить все функции для контейнеров Windows, но текущие различия платформ можно найти в обзоре.
Том gitRepo
Том gitRepo подключает каталог и клонирует в него указанный репозиторий Git во время создания контейнера. Используя том gitRepo в экземплярах контейнера, можно избежать добавления кода для выполнения этой задачи в приложениях.
При установке тома gitRepo можно задать три свойства для его настройки.
Свойство | Обязательное поле | Описание: |
---|---|---|
repository |
Да | Полный URL-адрес (включая http:// или https:// ) репозитория Git, который будет клонирован. |
directory |
Нет | Каталог, в который необходимо клонировать репозиторий. Значение пути не должно содержать знак .. или начинаться с него. Если указан знак . , репозиторий клонируется в каталог тома. В противном случае репозиторий Git клонируется в подкаталог с указанным именем в каталоге томов. |
revision |
No | Зафиксированный хэш версии, которая будет клонирована. Если не указан, клонируется версия HEAD . |
Монтирование тома gitRepo с помощью Azure CLI
Чтобы подключить том gitRepo при развертывании экземпляров контейнера с помощью Azure CLI, укажите параметры --gitrepo-url
и --gitrepo-mount-path
в команде az container create. При необходимости можно указать каталог тома, в который будет осуществляться клонирование (--gitrepo-dir
) и хэш фиксации редакции, которая будет клонирована (--gitrepo-revision
).
В этом примере команда клонирует пример приложения Microsoft aci-helloworld в /mnt/aci-helloworld
в экземпляре контейнера.
az container create \
--resource-group myResourceGroup \
--name hellogitrepo \
--image mcr.microsoft.com/azuredocs/aci-helloworld \
--dns-name-label aci-demo \
--ports 80 \
--gitrepo-url https://github.com/Azure-Samples/aci-helloworld \
--gitrepo-mount-path /mnt/aci-helloworld
Чтобы убедиться, что том gitRepo подключен, запустите оболочку в контейнере с помощью команды az container exec и выведите список каталогов.
az container exec --resource-group myResourceGroup --name hellogitrepo --exec-command /bin/sh
/usr/src/app # ls -l /mnt/aci-helloworld/
total 16
-rw-r--r-- 1 root root 144 Apr 16 16:35 Dockerfile
-rw-r--r-- 1 root root 1162 Apr 16 16:35 LICENSE
-rw-r--r-- 1 root root 1237 Apr 16 16:35 README.md
drwxr-xr-x 2 root root 4096 Apr 16 16:35 app
Подключение тома gitRepo: Ресурсный менеджер
Чтобы подключить том gitRepo при развертывании экземпляров контейнера с помощью шаблона Azure Resource Manager, в шаблоне сначала нужно заполнить массив volumes
в разделе properties
группы контейнеров. Затем для каждого контейнера в группе контейнеров, в которой нужно подключить том gitRepo, нужно заполнить массив volumeMounts
в разделе properties
определения контейнера.
Например, следующий шаблон Resource Manager создает группу контейнеров, состоящую из одного контейнера. Контейнер клонирует два репозитория GitHub, указанных блоками тома gitRepo. Второй том включает дополнительные свойства, которые определяют каталог для клонирования и хэш коммита конкретной версии для клонирования.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"variables": {
"container1name": "aci-tutorial-app",
"container1image": "mcr.microsoft.com/azuredocs/aci-helloworld"
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2021-03-01",
"name": "volume-demo-gitrepo",
"location": "[resourceGroup().location]",
"properties": {
"containers": [
{
"name": "[variables('container1name')]",
"properties": {
"image": "[variables('container1image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"ports": [
{
"port": 80
}
],
"volumeMounts": [
{
"name": "gitrepo1",
"mountPath": "/mnt/repo1"
},
{
"name": "gitrepo2",
"mountPath": "/mnt/repo2"
}
]
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "tcp",
"port": "80"
}
]
},
"volumes": [
{
"name": "gitrepo1",
"gitRepo": {
"repository": "https://github.com/Azure-Samples/aci-helloworld"
}
},
{
"name": "gitrepo2",
"gitRepo": {
"directory": "my-custom-clone-directory",
"repository": "https://github.com/Azure-Samples/aci-helloworld",
"revision": "d5ccfcedc0d81f7ca5e3dbe6e5a7705b579101f1"
}
}
]
}
}
]
}
В результате структура каталогов двух клонированных репозиториев, определенных в предыдущем шаблоне, выглядит следующим образом.
/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory
Чтобы увидеть пример развертывания группы нескольких контейнеров с помощью шаблона Azure Resource Manager, см. статью Развёртывание групп контейнеров в Azure Container Instances.
Проверка подлинности в частном репозитории Git
Чтобы подключить том gitRepo для частного репозитория Git, укажите учетные данные в URL-адресе репозитория. Как правило, учетные данные представлены в форме имени пользователя и персонального токена доступа (PAT), который предоставляет скопированный доступ к репозиторию.
Например, параметр Azure CLI --gitrepo-url
для частного репозитория GitHub будет похож на следующий (где "gituser" — это имя пользователя GitHub, а "abcdef1234fdsa4321abcdef" — это личный маркер доступа пользователя):
--gitrepo-url https://gituser:[email protected]/GitUser/some-private-repository
Для репозитория Git Azure Repos укажите любое имя пользователя (вы можете использовать "azurereposuser", как в следующем примере) в сочетании с действительным PAT.
--gitrepo-url https://azurereposuser:[email protected]/your-org/_git/some-private-repository
Дополнительные сведения о личных маркерах доступа для GitHub и Azure Repos см. в следующих рекомендациях:
GitHub: создание личных маркеров доступа для командной строки
Azure Repos: создание личных маркеров доступа для аутентификации доступа
Следующие шаги
Узнайте, как подключить другие типы томов в службе "Экземпляры контейнеров Azure".
- Mount an Azure file share in Azure Container Instances (Подключение файлового ресурса Azure с помощью службы "Экземпляры контейнеров Azure")
- Монтирование тома emptyDir в службе "Azure Container Instances"
- Монтирование секретного тома в Azure Container Instances