Montera en gitRepo-volym i Azure Container Instances
Lär dig hur du monterar en gitRepo-volym för att klona en Git-lagringsplats till dina containerinstanser.
Kommentar
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:
Property | 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 | Incheckningshash 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 volumeMounts
properties
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 incheckningshash för en specifik revision att klona.
{
"$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:
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: