Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Lär dig hur du monterar en gitRepo-volym för att klona en Git-lagringsplats till dina containerinstanser.
Anteckning
Montering av en gitRepo-volym är för närvarande begränsad till Linux-containrar. Medan vi arbetar med att ta alla funktioner till Windows-containrar kan du hitta aktuella plattformsskillnader i översikten.
gitRepo-volym
GitRepo-volymen monterar en katalog och klonar den angivna Git-lagringsplatsen till den när containern skapas. Genom att använda en gitRepo-volym i dina containerinstanser kan du undvika att lägga till koden för att göra det i dina program.
När du monterar en gitRepo-volym kan du ange tre egenskaper för att konfigurera volymen:
| Egenskap | Obligatoriskt | Beskrivning |
|---|---|---|
repository |
Ja | Den fullständiga URL:en, inklusive http:// eller https://, för Git-lagringsplatsen som ska klonas. |
directory |
Nej | Katalog till vilken lagringsplatsen ska klonas. Sökvägen får inte innehålla eller börja med "..". Om du anger "." klonas lagringsplatsen till volymens katalog. Annars klonas Git-lagringsplatsen till en underkatalog till det angivna namnet i volymkatalogen. |
revision |
Nej | Commit-hash för revisionen som ska klonas. Om den är ospecificerad klonas revisionen HEAD . |
Montera gitRepo-volym: Azure CLI
Om du vill montera en gitRepo-volym när du distribuerar containerinstanser med Azure CLI anger du parametrarna --gitrepo-url och --gitrepo-mount-path till kommandot az container create . Du kan också ange katalogen i volymen som ska klonas till (--gitrepo-dir) och incheckningshash för revisionen som ska klonas (--gitrepo-revision).
Det här exempelkommandot klonar Exempelprogrammet Microsoft aci-helloworld i /mnt/aci-helloworld containerinstansen:
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
Om du vill kontrollera att gitRepo-volymen har monterats startar du ett gränssnitt i containern med az container exec och listar katalogen:
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
Montera gitRepo-volym: Resource Manager
Om du vill montera en gitRepo-volym när du distribuerar containerinstanser med en Azure Resource Manager-mall fyller du först i matrisen volumes i avsnittet containergrupp properties i mallen. För varje container i containergruppen där du vill montera gitRepo-volymen fyller du sedan i matrisen volumeMountsproperties i avsnittet i containerdefinitionen.
Följande Resource Manager-mall skapar till exempel en containergrupp som består av en enda container. Containern klonar två GitHub-lagringsplatser som anges av gitRepo-volymblocken. Den andra volymen innehåller ytterligare egenskaper som anger en katalog att klona till, och commit-hash för en specifik revision som ska klonas.
{
"$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"
}
}
]
}
}
]
}
Den resulterande katalogstrukturen för de två klonade lagringsplatserna som definierats i föregående mall är:
/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory
Ett exempel på distribution av containerinstanser med en Azure Resource Manager-mall finns i Distribuera grupper med flera containrar i Azure Container Instances.
Privat Git-lagringsplatsautentisering
Om du vill montera en gitRepo-volym för en privat Git-lagringsplats anger du autentiseringsuppgifter i lagringsplatsens URL. Vanligtvis är autentiseringsuppgifterna i form av ett användarnamn och en personlig åtkomsttoken (PAT) som ger begränsad åtkomst till lagringsplatsen.
Azure CLI-parametern --gitrepo-url för en privat GitHub-lagringsplats ser till exempel ut ungefär så här (där "gituser" är GitHub-användarnamnet och "abcdef1234fdsa4321abcdef" är användarens personliga åtkomsttoken):
--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository
För en Git-lagringsplats för Azure Repos anger du valfritt användarnamn (du kan använda "azurereposuser" som i följande exempel) i kombination med en giltig PAT:
--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository
Mer information om personliga åtkomsttoken för GitHub och Azure Repos finns i följande vägledning:
GitHub: Skapa en personlig åtkomsttoken för kommandoraden
Azure-lagringsplatser: Skapa personliga åtkomsttoken för att autentisera åtkomst
Nästa steg
Lär dig hur du monterar andra volymtyper i Azure Container Instances: