Azure Container Instances'a gitRepo birimi bağlama
Git deposunu kapsayıcı örneklerinize kopyalamak için gitRepo birimi bağlamayı öğrenin.
Not
GitRepo birimi bağlama işlemi şu anda Linux kapsayıcıları ile sınırlıdır. Tüm özellikleri Windows kapsayıcılarına getirmeye çalışırken, genel bakış bölümünde geçerli platform farklarını bulabilirsiniz.
gitRepo birimi
gitRepo birimi bir dizin bağlar ve kapsayıcı oluşturma sırasında belirtilen Git deposunu bu dizine kopyalar. Kapsayıcı örneklerinizde gitRepo birimi kullanarak uygulamalarınızda bunu yapmak için kod eklemekten kaçınabilirsiniz.
GitRepo birimi bağladığınızda, birimi yapılandırmak için üç özellik ayarlayabilirsiniz:
Özellik | Zorunlu | Veri Akışı Açıklaması |
---|---|---|
repository |
Yes | Kopyalanacak Git deposunun veya https:// dahil olmak üzere http:// tam URL'si. |
directory |
Hayır | Deponun kopyalanması gereken dizin. Yol "" içermemeli veya ".. " ile başlamamalıdır. ". " belirtirseniz, depo birimin dizinine kopyalanır. Aksi takdirde Git deposu birim dizininde verilen adın bir alt dizinine kopyalanır. |
revision |
Hayır | Kopyalanacak düzeltmenin işleme karması. Belirtilmezse, HEAD düzeltme kopyalanır. |
gitRepo birimini bağlama: Azure CLI
Azure CLI ile kapsayıcı örnekleri dağıtırken gitRepo birimi bağlamak için az container create komutuna ve --gitrepo-mount-path
parametrelerini sağlayın--gitrepo-url
. İsteğe bağlı olarak birimde kopyalanacak dizini (--gitrepo-dir
) ve kopyalanacak düzeltmenin işleme karması (--gitrepo-revision
) belirtebilirsiniz.
Bu örnek komut, Microsoft aci-helloworld örnek uygulamasını kapsayıcı örneğinde içine /mnt/aci-helloworld
klonlar:
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 biriminin bağlandığını doğrulamak için az container exec ile kapsayıcıda bir kabuk başlatın ve dizinini listeleyin:
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 birimini bağlama: Resource Manager
Azure Resource Manager şablonuyla kapsayıcı örneklerini dağıtırken gitRepo birimi bağlamak için önce şablonun kapsayıcı grubu properties
bölümündeki diziyi doldurunvolumes
. Ardından gitRepo birimini bağlamak istediğiniz kapsayıcı grubundaki her kapsayıcı için kapsayıcı tanımının properties
bölümündeki diziyi doldurunvolumeMounts
.
Örneğin, aşağıdaki Resource Manager şablonu tek bir kapsayıcıdan oluşan bir kapsayıcı grubu oluşturur. Kapsayıcı, gitRepo birim blokları tarafından belirtilen iki GitHub deposunu klonlar. İkinci birim, kopyalanacağı dizini belirten ek özellikleri ve kopyalanan belirli bir düzeltmenin işleme karması içerir.
{
"$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"
}
}
]
}
}
]
}
Önceki şablonda tanımlanan iki kopyalanmış deponun sonuçta elde edilen dizin yapısı:
/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory
Azure Resource Manager şablonuyla kapsayıcı örneği dağıtımı örneği görmek için bkz . Azure Container Instances'ta çok kapsayıcılı grupları dağıtma.
Özel Git deposu kimlik doğrulaması
Özel git deposuna gitRepo birimi bağlamak için, depo URL'sinde kimlik bilgilerini belirtin. Kimlik bilgileri genellikle bir kullanıcı adı ve depoya kapsamlı erişim sağlayan bir kişisel erişim belirteci (PAT) biçimindedir.
Örneğin, özel bir GitHub deposu için Azure CLI --gitrepo-url
parametresi aşağıdakine benzer görünür (burada "gituser" GitHub kullanıcı adıdır ve "abcdef1234fdsa4321abcdef" kullanıcının kişisel erişim belirtecidir):
--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository
Azure Repos Git deposu için geçerli bir PAT ile birlikte herhangi bir kullanıcı adı belirtin (aşağıdaki örnekte olduğu gibi "azurereposuser" kullanabilirsiniz):
--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository
GitHub ve Azure Repos için kişisel erişim belirteçleri hakkında daha fazla bilgi için aşağıdaki kılavuza bakın:
GitHub: Komut satırı için kişisel erişim belirteci oluşturma
Azure Repos: Erişimin kimliğini doğrulamak için kişisel erişim belirteçleri oluşturma
Sonraki adımlar
Azure Container Instances'ta diğer birim türlerini bağlamayı öğrenin: