Memasang volume gitRepo dalam Azure Container Instances

Pelajari cara memasang volume gitRepo untuk mengkloning repositori Git ke dalam instans kontainer Anda.

Catatan

Memasang volume gitRepo saat ini dibatasi untuk kontainer Linux. Saat kita sedang berupaya untuk membawa semua fitur ke kontainer Windows, Anda dapat menemukan perbedaan platform saat ini dalam ikhtisar.

volume gitRepo

Volume gitRepo memasang direktori dan mengkloning repositori Git yang ditentukan ke dalamnya selama pembuatan kontainer. Dengan menggunakan volume gitRepo dalam instans kontainer, Anda dapat menghindari penambahan kode untuk melakukannya di aplikasi Anda.

Saat Anda memasang volume gitRepo, Anda dapat mengatur tiga properti untuk mengonfigurasi volume:

Properti Wajib Deskripsi
repository Ya URL lengkap, termasuk http:// atau https://, dari repositori Git yang akan dikloning.
directory No Direktori tempat repositori harus dikloning. Jalur tidak boleh berisi atau dimulai dengan "..". Jika Anda menentukan ".", repositori dikloning ke direktori volume. Jika tidak, repositori Git dikloning ke subdirektori dari nama yang diberikan dalam direktori volume.
revision No Hash komit revisi yang akan dikloning. Jika tidak ditentukan, revisi HEAD akan dikloning.

Memasang volume gitRepo: Azure CLI

Untuk memasang volume gitRepo saat Anda menyebarkan instans kontainer dengan Azure CLI, berikan parameter --gitrepo-url dan --gitrepo-mount-path ke perintah az container create. Anda dapat secara opsional menentukan direktori dalam volume untuk mengkloning ke (--gitrepo-dir) dan hash penerapan revisi yang akan dikloning (--gitrepo-revision).

Perintah contoh ini mengkloning aplikasi sampel aci-helloworld Microsoft ke /mnt/aci-helloworld dalam instans kontainer:

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

Untuk memverifikasi volume gitRepo telah dipasang, luncurkan shell di kontainer dengan perintah az container exec dan daftarkan direktori:

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

Memasang volume gitRepo: Resource Manager

Untuk memasang volume gitRepo saat Anda menyebarkan instans kontainer dengan templat Azure Resource Manager, pertama-tama isi array volumes di bagian properties grup kontainer templat. Kemudian, untuk setiap kontainer dalam grup kontainer di mana Anda ingin memasang volume gitRepo, isi array volumeMounts di bagian properties definisi kontainer.

Misalnya, templat Resource Manager berikut membuat grup kontainer yang terdiri dari satu kontainer. Kontainer mengkloning dua repositori GitHub yang ditentukan oleh blok volume gitRepo. Volume kedua mencakup properti tambahan yang menentukan direktori untuk dikloning, dan hash komit dari revisi tertentu untuk kloning.

{
  "$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"
            }
          }
        ]
      }
    }
  ]
}

Struktur direktori yang dihasilkan dari dua repositori kloning yang didefinisikan dalam templat sebelumnya adalah:

/mnt/repo1/aci-helloworld
/mnt/repo2/my-custom-clone-directory

Untuk melihat contoh penyebaran instans kontainer dengan templat Azure Resource Manager, lihat Menyebarkan grup multi-kontainer di Azure Container Instances.

Autentikasi repositori Git Pribadi

Untuk memasang volume gitRepo untuk repositori Git pribadi, tentukan kredensial di URL repositori. Biasanya, kredensial dalam bentuk nama pengguna dan token akses pribadi (PAT) yang memberikan akses tercakup ke repositori.

Misalnya, parameter --gitrepo-url Azure CLI untuk repositori GitHub pribadi akan tampak mirip dengan yang berikut (di mana "gituser" adalah nama pengguna GitHub, dan "abcdef1234fdsa4321abcdef" adalah token akses pribadi pengguna):

--gitrepo-url https://gituser:abcdef1234fdsa4321abcdef@github.com/GitUser/some-private-repository

Untuk repositori Azure Repos Git, tentukan nama pengguna apa pun (Anda dapat menggunakan "azurereposuser" seperti dalam contoh berikut) dalam kombinasi dengan PAT yang valid:

--gitrepo-url https://azurereposuser:abcdef1234fdsa4321abcdef@dev.azure.com/your-org/_git/some-private-repository

Untuk informasi selengkapnya tentang token akses pribadi untuk GitHub dan Azure Repos, lihat yang berikut ini:

GitHub: Membuat token akses pribadi untuk baris perintah

Azure Repos: Membuat token akses pribadi untuk mengautentikasi akses

Langkah berikutnya

Pelajari cara memasang jenis volume lainnya di Azure Container Instances: