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ğıdakilere 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: