Připojení svazku gitRepo ve službě Azure Container Instances
Zjistěte, jak připojit svazek GitRepo ke klonování úložiště Git do instancí kontejneru.
Poznámka:
Připojení svazku GitRepo je aktuálně omezeno na kontejnery Linuxu. Zatímco pracujeme na přenesení všech funkcí do kontejnerů Windows, aktuální rozdíly v platformě najdete v přehledu.
svazek GitRepo
Svazek GitRepo připojí adresář a během vytváření kontejneru do něj naklonuje zadané úložiště Git. Pomocí svazku gitRepo v instancích kontejneru se můžete vyhnout přidání kódu pro účely těchto operací v aplikacích.
Když připojíte svazek GitRepo , můžete nastavit tři vlastnosti pro konfiguraci svazku:
Vlastnost | Požadováno | Popis |
---|---|---|
repository |
Ano | Úplná adresa URL úložiště Git, včetně http:// nebo https:// , která se má naklonovat. |
directory |
No | Adresář, do kterého se má úložiště naklonovat. Cesta nesmí obsahovat ani začínat na ".. ". Pokud zadáte ". ", úložiště se naklonuje do adresáře svazku. V opačném případě se úložiště Git naklonuje do podadresáře daného názvu v adresáři svazku. |
revision |
No | Hodnota hash potvrzení revize, která se má naklonovat. Pokud není zadáno, HEAD revize se naklonuje. |
Připojení svazku GitRepo: Azure CLI
Pokud chcete připojit svazek gitRepo při nasazování instancí kontejneru pomocí Azure CLI, zadejte --gitrepo-url
parametry --gitrepo-mount-path
příkazu az container create . Volitelně můžete zadat adresář v rámci svazku, do kterého chcete klonovat (--gitrepo-dir
) a hodnotu hash potvrzení revize, která se má naklonovat (--gitrepo-revision
).
Tento ukázkový příkaz naklonuje ukázkovou aplikaci Microsoft aci-helloworld do /mnt/aci-helloworld
instance kontejneru:
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
Pokud chcete ověřit připojení svazku GitRepo, spusťte v kontejneru prostředí pomocí příkazu az container exec a vypište adresář:
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
Připojení svazku GitRepo: Resource Manager
Pokud chcete připojit svazek GitRepo při nasazování instancí kontejneru pomocí šablony Azure Resource Manageru, nejprve naplníte volumes
pole v části skupiny properties
kontejnerů šablony. Potom pro každý kontejner ve skupině kontejnerů, ve které chcete připojit svazek gitRepo , naplňte volumeMounts
pole v properties
části definice kontejneru.
Například následující šablona Resource Manageru vytvoří skupinu kontejnerů skládající se z jednoho kontejneru. Kontejner naklonuje dvě úložiště GitHubu určená bloky svazků gitRepo . Druhý svazek obsahuje další vlastnosti určující adresář, do kterého se má klonovat, a hodnotu hash potvrzení konkrétní revize, do které se má klonovat.
{
"$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"
}
}
]
}
}
]
}
Výsledná adresářová struktura dvou naklonovaných úložišť definovaných v předchozí šabloně je:
/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory
Příklad nasazení instance kontejneru pomocí šablony Azure Resource Manageru najdete v tématu Nasazení skupin s více kontejnery ve službě Azure Container Instances.
Ověřování privátního úložiště Git
Pokud chcete připojit svazek GitRepo pro privátní úložiště Git, zadejte přihlašovací údaje v adrese URL úložiště. Přihlašovací údaje jsou obvykle ve formě uživatelského jména a tokenu PAT(PAT), který uděluje omezený přístup k úložišti.
Například parametr Azure CLI --gitrepo-url
pro privátní úložiště GitHub by vypadal podobně jako následující (kde "gituser" je uživatelské jméno GitHubu a "abcdef1234fdsa4321abcdef" je osobní přístupový token uživatele):
--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository
V případě úložiště Git Azure Repos zadejte jakékoli uživatelské jméno (můžete použít "azurereposuser" jako v následujícím příkladu) v kombinaci s platným patem:
--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository
Další informace o tokenech pat pro GitHub a Azure Repos najdete v následujících tématech:
GitHub: Vytvoření osobního přístupového tokenu pro příkazový řádek
Azure Repos: Vytvoření tokenů pat pro ověření přístupu
Další kroky
Zjistěte, jak připojit jiné typy svazků ve službě Azure Container Instances: